Security of program executables and microprocessors based on compiler-architecture interaction
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-009/30
G06F-021/12
출원번호
US-0683640
(2012-11-21)
등록번호
US-9582650
(2017-02-28)
발명자
/ 주소
Chheda, Saurabh
Carver, Kristopher
Ashok, Raksit
출원인 / 주소
BlueRisc, Inc.
대리인 / 주소
Choate, Hall & Stewart LLP
인용정보
피인용 횟수 :
0인용 특허 :
228
초록▼
A method, for use in a processor context, wherein instructions in a program executable are encoded with plural instruction set encodings. A method wherein a control instruction encoded with an instruction set encoding contains information about decoding of an instruction that is encoded with another
A method, for use in a processor context, wherein instructions in a program executable are encoded with plural instruction set encodings. A method wherein a control instruction encoded with an instruction set encoding contains information about decoding of an instruction that is encoded with another instruction set encoding scheme. A method wherein instruction set encodings are randomly generated at compile time. A processor framework wherein an instruction is decoded during execution with the help of information provided by a previously decoded control instruction.
대표청구항▼
1. A processor comprising: memory storing instructions for an instruction stream of a program executable, the instruction stream comprising blocks of instructions, a first block of instructions among the blocks of instructions having been encoded in a first instruction set architecture using a first
1. A processor comprising: memory storing instructions for an instruction stream of a program executable, the instruction stream comprising blocks of instructions, a first block of instructions among the blocks of instructions having been encoded in a first instruction set architecture using a first technique, and a second block of instructions among the blocks of instructions having been encoded in a second instruction set architecture using a second technique, the first instruction set architecture being different from the second instruction set architecture, the instruction stream further comprising a first control instruction and a second control instruction, the first control instruction preceding the first block of instructions in the instruction stream, the first control instruction providing first information about the first technique, and the second control instruction preceding the second block of instructions in the instruction stream, the second control instruction providing second information about the second technique; anda decoder to receive the instruction stream and to perform operations comprising: receiving the first control instruction in the instruction stream;obtaining, from the first control instruction, the first information about the first technique;receiving the first block of instructions in the instruction stream;using the first information to decode the first block of instructions to produce first decoded instructions;outputting, in a pipeline of the processor, the first decoded instructions;receiving the second control instruction in the instruction stream;obtaining, from the second control instruction, the second information about the second technique;receiving the second block of instructions in the instruction stream;using the second information to decode the second block of instructions to produce second decoded instructions; andoutputting, in the pipeline of the processor, the second decoded instructions. 2. The processor of claim 1, wherein the pipeline comprises an execution stage to receive the first and second decoded instructions. 3. The processor of claim 1, wherein the first information is usable to configure the decoder to decode the first block of instructions, and the second information is usable to configure the decoder to decode the second block of instructions. 4. The processor of claim 1, wherein at least one of the first control instruction or the second control instruction comprises a co-processor instruction. 5. The processor of claim 1, further comprising: memory storing a compiler to perform operations comprising: generating the first block of instructions and the second block of instructions;generating the first control instruction and the second control instruction; andgenerating the instruction stream from the first control instruction, the second control instruction, the first block of instructions, and the second block of instructions. 6. The processor of claim 1, wherein a third block of instructions among the blocks of instructions has been encoded in a third instruction set architecture using a third technique, the third instruction set architecture being different from both the first instructions set architecture and the second instruction set architecture, the instruction stream further comprising a third control instruction that precedes the third block of instructions in the instruction stream, the third control instruction providing third information about the third technique; and wherein the decoder is configured to perform operations comprising: receiving the third control instruction in the instruction stream;obtaining, from the third control instruction, the third information about the third technique;receiving the third block of instructions in the instruction stream;using the third information to decode the third block of instructions to produce third decoded instructions; andoutputting, in the pipeline of the processor, the third decoded instructions. 7. The processor of claim 1, wherein the first technique comprises a process according to which bits of the first block of instructions are coded, and the second technique comprises a process according to which bits of the second block of instructions are coded. 8. The processor of claim 1, wherein at least one of the first or second control instructions is coded using keys. 9. The processor of claim 1, wherein at least some of the blocks of instructions are scrambled for security and comprise flipped bits, rotated bits, or a combination of flipped bits and rotated bits. 10. The processor of claim 1, wherein the decoder comprises a static decode part to decode control instructions and an instruction decode part to decode blocks of instructions. 11. The processor of claim 1, further comprising memory to store a compiler configured to affect redundant activity in a data cache by leveraging static information about data access patterns in the processor that are available at compile time.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (228)
Radigan James J. (Sunnyvale CA) Schwartz David A. (Moorpark CA), Activity masking with mask context of SIMD processors.
Briggs Willard S. (Carrollton TX) Gant Alan D. (Dallas TX) Gupta Parveen K. (Carrollton TX) Ferson Isadore S. (Austin TX), Address-controlled automatic bus arbitration and address modification.
van Hook Timothy J. ; Hsu Peter ; Huffman William A. ; Moreton Henry P. ; Killian Earl A., Alignment and ordering of vector elements for single instruction multiple data processing.
McAuliffe Keven P. (Yorktown Heights NY) Melton Evelyn A. (Poughkeepsie NY) Norton Vern A. (Croton-On-Hudson NY) Pfister Gregoty F. (Briarcliff Manor NY) Wakefield Scott P. (Croton-On-Hudson NY), Aperiodic mapping system using power-of-two stride access to interleaved devices.
O\Keefe David B. (Tyngsboro MA) Cassarino ; Jr. Frank V. (Weston MA) Riikonen Douglas L. (Westford MA), Architecture for a microprogrammed device controller.
Blomgren James S. (San Jose CA) Cohen Earl T. (Fremont CA) Baird Brian R. (Pleasanton CA), Block-based branch prediction using a target finder array storing target sub-addresses.
Tetsuya Tanaka JP; Takao Yamamoto JP, Branch prediction method and processor using origin information, relative position information and history information.
Redford, John, Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic.
Weinberg Tobias M. (Somerville MA) Tennies Lisa A. (Bedford MA) Vasilevsky Alexander D. (Watertown MA), Compiling a source code vector instruction by generating a subgrid loop for iteratively processing array elements by plu.
Dmitry M. Maslennikov RU; Valentine G. Tikhonov RU; Alexander I. Kasinsky RU; Vladimir Y. Volkonsky RU, Computer method and apparatus for compilation of multi-way decisions.
Daniel Richard A. (Escondido CA) Rowson Stuart C. (Escondido CA) Barnhart James E. (St. Peters MO) Paek Woonsuk (Fremont CA), Computer system clock generator for generating tuned multiple clock signals.
Puziol David L. ; Van Dyke Korbin S. ; Widigen Larry ; Shar Len ; Smith ; III Walstein Bennett, Configurable branch prediction for a processor performing speculative execution.
Puziol, David L.; Van Dyke, Korbin S.; Widigen, Larry; Shar, Len; Smith, III, Walstein Bennett, Configurable branch prediction for a processor performing speculative execution.
Moritz, Csaba Andras; Krishna, Mani; Koren, Israel; Unsal, Osman Sabri, Controlling a processor resource based on a compile-time prediction of number of instructions-per-cycle that will be executed across plural cycles by the processor.
Gotou Shizuo (Hachiouji JPX) Kagimasa Toyohiko (Kokubunji JPX) Yoshizumi Seiichi (Hino PA JPX) Shintani Yooichi (Pittsburgh PA), Data processor with control of the significant bit lengths of general purpose registers.
Blomgren James S. (San Jose CA), Dual instruction set processor having a pipeline with a pipestage functional unit that is relocatable in time and sequen.
Datar, Rajendra; Ghanekar, Sachin; Gogte, Ravindra; Gracias, Sebastian, Dynamically activating and deactivating selected circuit blocks of a data processing integrated circuit during execution of instructions according to power code bits appended to selected instructions.
Santhanam Vatsa (Campbell CA), Efficient explicit data prefetching analysis and code generation in a low-level optimizer for inserting prefetch instruc.
Richter David E. (San Jose CA) Pattin Jay C. (Redwood City CA) Blomgren James S. (San Jose CA), Emulating operating system calls in an alternate instruction set using a modified code segment descriptor.
Sullivan Timothy J. (Clinton MA) Burns Cynthia J. (Franklin MA) Andrade Albert T. (North Grafton MA) Frangioso ; Jr. Ralph C. (Franklin MA), Expandable memory system and method for interleaving addresses among memory banks of different speeds and sizes.
Moore Victor S. (Deerfield Beach FL) Kraft Wayne R. (Coral Springs FL) Rhodes ; Jr. Joseph C. (Boca Raton FL) Stahl ; Jr. William L. (Coral Springs FL), Flexible processor on a single semiconductor substrate using a plurality of arrays.
Fijany Amir (Sherman Oaks CA) Bejczy Antal K. (Pasadena CA), Highly parallel reconfigurable computer architecture for robotic computation having plural processor cells each having r.
Lazaravich Robert V. (Chandler AZ) Kuester Jill L. (Mesa AZ), Instruction accelerator for processing loop instructions with address generator using multiple stored increment values.
Grondalski Robert S. (Maynard MA), Massively parallel array processing system with processors selectively accessing memory module locations using address i.
Wade Jon P. ; Cassiday Daniel R. ; Lordi Robert D. ; Steele ; Jr. Guy Lewis ; St. Pierre Margaret A. ; Wong-Chan Monica C. ; Abuhamdeh Zahi S. ; Douglas David C. ; Ganmukhi Mahesh N. ; Hill Jeffrey V, Massively parallel computer including auxiliary vector processor.
Mowry Todd C. (Palo Alto CA) Killian Earl A. (Los Altos CA), Method and apparatus for reducing delays following the execution of a branch instruction in an instruction pipeline.
Fong Anthony S.,HKX, Method and apparatus to specify access control list and cache enabling and cache coherency requirement enabling on individual operands of an instruction of a computer.
Dubey Pradeep Kumar,INX ; Olsson Brett ; Hochsprung Ronald Ray ; Scales ; III Hunter Ledbetter ; Diefendorff Keith Everett, Method and system for a result code for a single-instruction multiple-data predicate compare operation.
Patel Rajesh Bhikhubhai ; Jessani Romesh Mangho ; Kuttana Belliappa Manavattira, Method and system for dynamically sharing cache capacity in a microprocessor.
Kahle James A. ; Mallick Soummya ; McDonald Robert G. ; Swarthout Edward L., Method and system for executing a program within a multiscalar processor by processing linked thread descriptors.
Agarwal Ramesh Chandra ; Groves Randall Dean ; Gustavson Fred Gehrung ; Johnson Mark Alan ; Olsson Brett, Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, mu.
Nishiyama Hiroyasu,JPX ; Kikuchi Sumio,JPX ; Mori Noriyasu,JPX ; Nishimoto Akira,JPX ; Takeuchi Yooichi,JPX, Method for controlling a processor for power-saving in a computer for executing a program, compiler medium and processo.
Hillis W. Daniel (Cambridge MA) Lasser Clifford (Boston MA) Kahle Brewster (Somerville MA) Sims Karl (Somerville MA), Method of simulating additional processors in a SIMD parallel processor array.
Revilla Juan Guillermo ; Barry Edwin F. ; Marchand Patrick Rene ; Pechanek Gerald G., Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor.
Maher Robert (Carrollton TX) Garibay ; Jr. Raul A. (Plano TX) Herubin Margaret R. (Coppell TX) Bluhm Mark (Carrollton TX), Microprocessor with externally controllable power management.
Chang Ki S. (Houston TX) Patrick Michael W. (Houston TX) Sacarisen Stephen P. (Houston TX) Stambaugh Mark A. (Houston TX), Microprocessor with integrated CPU, RAM, timer, and bus arbiter for data communications systems.
Emer Joel S. ; Steely Simon ; McLellan Edward J., Multiprobe instruction cache with instruction-based probe hint generation and training whereby the cache bank or way to.
Hillis W. Daniel (Cambridge MA) Douglas David C. (Concord MA) Leiserson Charles E. (Winchester MA) Kuszmaul Bradley C. (Waltham MA) Ganmukhi Mahesh N. (Wexford PA) Hill Jeffrey V. (San Jose CA) Wong-, Parallel computer system with physically separate tree networks for data and control messages.
Kim Won S. (Fremont CA) Nickolls John R. (Los Altos CA), Parallel processor system with highly flexible local control capability, including selective inversion of instruction si.
Yeager Kenneth C. ; Khurshid Mazin S., Pipeline processor with enhanced method and apparatus for restoring register-renaming information in the event of a bran.
Mohammad, Saleem Chisty, Power saving in a USB peripheral by providing gated clock signal to CSR block in response to a local interrupt generated when an operation is to be performed.
Jackson James H. (Cary) Lee Ming-Chih (Cary NC), Processor array with relocated operand physical address generator capable of data transfer to distant physical processor.
Hammond Gary N. (Campbell CA) Kahn Kevin C. (Portland OR) Alpert Donald B. (Santa Clara CA), Processor capable of executing programs that contain RISC and CISC instructions.
Jignesh Trivedi ; Tse-Yu Yeh, Processor executing plural instruction sets (ISA's) with ability to have plural ISA's in different pipeline stages at same time.
Guttag Karl M. (Houston TX) Laws Gerald E. (Austin TX), Psuedo-microprogramming in microprocessor in single-chip microprocessor with alternate IR loading from internal or exter.
Luca Giuseppe De Ambroggi IT; Fabrizio Campanale IT; Salvatore Nicosia IT; Francesco Tomaiuolo IT; Promod Kumar IT, Redundancy architecture for an interleaved memory.
Levinthal Adam E. (Corte Madera CA) Porter Thomas K. (Fairfax CA) Duff Thomas D. S. (No. Plainfield NJ) Carpenter Loren C. (Novato CA), Selective operation of processing elements in a single instruction multiple data stream (SIMD) computer system.
Hazama Katsuki,JPX, Semiconductor device with security protection function, ciphering and deciphering method thereof, and storage medium for storing software therefor.
Sprague David L. (10 Jacobs Creek Rd. Trenton NJ 08628) Harney Kevin (30 Reeve Pl. Brooklyn NY 11218) Kowashi Eiichi (6234 Kaitlyn Ct. Lawrenceville NJ 08648) Keith Michael (14 Quail Dr. Holland PA 1, Simd with selective idling of individual processors based on stored conditional flags, and with consensus among all flag.
Sharangpani Harshvardhan ; Fielden Kent, Storing predicted branch target address in different storage according to importance hint in branch prediction instruction.
Tran Thang M. ; Witt David B., Superscalar microprocessor which delays update of branch prediction information in response to branch misprediction unti.
Doshi Gautam B. ; Markstein Peter ; Karp Alan H. ; Huck Jerome C. ; Colon-Bonet Glenn T. ; Morrison Michael, System and method for deferring exceptions generated during speculative execution.
Baxter Michael A., System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization.
Gingold David Bruce (Somerville MA) Crouch Kenneth Walter (Cambridge MA) Lasser Clifford Adam (Cambridge MA) Bromley Harry Mark (Andover MA) Steele ; Jr. Guy Lewis (Lexington MA), System and method of mapping an array to processing elements.
Johnson William M. (San Jose CA), System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information sto.
Boufarah Edmond J. (Austin TX) Grohoski Gregory F. (Cedar Park TX) Lee Chien-Chyun (Ausin TX) Moore Charles R. (Ausin TX), System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatch.
Hebbalalu S. Ramagopal ; David B. Witt ; Michael Allen ; Moinul Syed ; Ravi Kolagotla ; Lawrence A. Booth, Jr. ; William C. Anderson, System having a configurable cache/SRAM memory.
Blomgren James S. ; Brashears Cheryl Senter, Temporal re-alignment of a floating point pipeline to an integer pipeline for emulation of a load-operate architecture.
Gilbert Ira H. (Carlisle MA) Ciccia Nicodemo A. (North Reading MA), Translator for translating source code for selective unrolling of loops in the source code.
Koyanagi Yoichi (Kawasaki JPX) Horie Takeshi (Kawasaki JPX), Vector processor having a mask register used for performing nested conditional instructions.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.