G06F9/30054

Neural network processor incorporating inter-device connectivity

A novel and useful neural network (NN) processing core incorporating inter-device connectivity and adapted to implement artificial neural networks (ANNs). A chip-to-chip interface spreads a given ANN model across multiple devices in a seamless manner. The NN processor is constructed from self-contained computational units organized in a hierarchical architecture. The homogeneity enables simpler management and control of similar computational units, aggregated in multiple levels of hierarchy. Computational units are designed with minimal overhead as possible, where additional features and capabilities are aggregated at higher levels in the hierarchy. On-chip memory provides storage for content inherently required for basic operation at a particular hierarchy and is coupled with the computational resources in an optimal ratio. Lean control provides just enough signaling to manage only the operations required at a particular hierarchical level. Dynamic resource assignment agility is provided which can be adjusted as required depending on resource availability and capacity of the device.

DISTANCE-BASED BRANCH PREDICTION AND DETECTION

Examples of techniques for distance-based branch prediction are disclosed. In one example implementation according to aspects of the present disclosure, a computer-implemented method includes: determining, by a processing system, a potential return instruction address (IA) by determining whether a relationship is satisfied between a first target IA and a first branch IA; storing a second branch IA as a return when a target IA of a second branch matches a potential return IA for the second branch; and applying the potential return IA for the second branch as a predicted target IA of a predicted branch IA stored as a return

Technologies for indirect branch target security
09830162 · 2017-11-28 · ·

Technologies for indirect branch target security include a computing device having a processor to execute an indirect branch instruction. The processor may determine an indirect branch target of the indirect branch instruction, load a memory tag associated with the indirect branch target, and determine whether the memory tag is set. The processor may generate a security fault if the memory tag is not set. The processor may load an encrypted indirect branch target, decrypt the encrypted branch target using an activation record key stored in an activation key register, and perform a jump to the indirect branch target. The processor may generate a next activation record coordinate as a function of the activation record key and a return address of a call instruction and generate the next activation record key as a function of the next activation record coordinate. Other embodiments are described and claimed.

EXECUTING SYSTEM CALL VECTORED INSTRUCTIONS IN A MULTI-SLICE PROCESSOR

Executing system call vectored (SCV) instructions in a multi-slice processor including receiving, by an instruction fetch unit, a SCV instruction, wherein the SCV instruction is a system call from an operating system; sending the SCV instruction to a branch issue queue; determining, by the branch issue queue, that the SCV instruction is next-to-complete; issuing the SCV instruction to a branch resolution unit; and executing the SCV instruction by the branch resolution unit.

TECHNIQUES FOR PREDICTING A TARGET ADDRESS OF AN INDIRECT BRANCH INSTRUCTION

A technique for operating a processor includes identifying a difficult branch instruction (branch) whose target address (target) has been mispredicted multiple times. Information about the branch (which includes a current target and a next target) is learned and stored in a data structure. In response to the branch executing subsequent to the storing, whether a branch target of the branch corresponds to the current target in the data structure is determined. In response to the branch target of the branch corresponding to the current target of the branch in the data structure, the next target of the branch that is associated with the current target of the branch in the data structure is determined. In response to detecting that a next instance of the branch has been fetched, the next target of the branch is utilized as the predicted target for execution of the next instance of the branch.

Hiding Stable Machine Instructions in Noise
20220058022 · 2022-02-24 ·

Our machine architecture and machine procedures use robustness, unpredictability and variability to hinder malware infection. In some embodiments, our machine instruction opcodes are randomized. The computing behavior of our machine is structurally stable (invariant) to small changes made to its machine instructions. Our invention expands the engineering method of stability to a cryptographically stable machine that is resistant to malware sabotage by an adversary.

Our procedures use quantum randomness to build unpredictable stable instructions. Our machine procedures can execute just before running a program so that the computing task can be performed with a different representation of its instructions during each run. A process of hiding a key or data inside of random noise is described that protects the privacy of the machine instruction opcodes and operands. In some embodiments, quantum randomness generates random noise, using photonic emission with a light emitting diode.

Computer processor that implements pre-translation of virtual addresses with target registers

A computer processor that implements pre-translation of virtual addresses with target registers is disclosed. The computer processor may include a register file comprising one or more registers. The computer processor may include processing logic. The processing logic may receive a value to store in a register of one or more registers. The processing logic may store the value in the register. The processing logic may designate the received value as a virtual instruction address, the virtual instruction address having a corresponding virtual base page number. The processing logic may translate the virtual base page number to a corresponding real base page number and zero or more real page numbers corresponding to zero or more virtual page numbers adjacent to the virtual base page number. The processing logic may further store in the register of the one or more registers the real base page number and the zero or more real page numbers.

Data processing apparatus that switches to execution of a different command list at a preset control point, method of controlling the same, and computer-readable storage medium
11256459 · 2022-02-22 · ·

This invention provides a data processing apparatus operable to execute processing requested by an application, where the apparatus comprises a processing unit configured to, if there is an instruction for processing, execute the processing in accordance with a command list indicated by the instruction; and a control unit configured to, upon receiving a request for processing from the application, generate a command list corresponding to the request and instruct the processing unit to perform the processing, wherein the processing unit comprises a switching unit configured to, upon receiving, from the control unit, a second instruction during execution of a command list for a first instruction, switch to execution of a command list for the second instruction at a timing of execution of a command that is a control point preset in the command list for the first instruction.

Memory Systems and Memory Control Methods

Memory systems and memory control methods are described. According to one aspect, a memory system includes a plurality of memory cells individually configured to store data, program memory configured to store a plurality of first executable instructions which are ordered according to a first instruction sequence and a plurality of second executable instructions which are ordered according to a second instruction sequence, substitution circuitry configured to replace one of the first executable instructions with a substitute executable instruction, and a control unit configured to execute the first and second executable instructions to control reading and writing of the data with respect to the memory, wherein the control unit is configured to execute the first executable instructions according to the first instruction sequence, to execute the substitute executable instruction after the execution of the first executable instructions, and to execute the second executable instructions according to the second instruction sequence as a result of execution of the substitute executable instruction.

INSTRUCTION PREFETCHING
20170286116 · 2017-10-05 ·

A data processing apparatus has prefetch circuitry for prefetching instructions from a data store into an instruction queue. Branch prediction circuitry is provided for predicting outcomes of branch instructions and the prefetch circuitry may prefetch instructions subsequent to the branch based on the predicted outcome. Instruction identifying circuitry identifies whether a given instruction prefetched from the data store is a predetermined type of program flow altering instruction and if so then controls the prefetch circuitry to halt prefetching of subsequent instructions into the instruction queue.