Istruzioni in ISA e microistruzioni?

1
  1. È corretto che:

    • una microistruzione è ciò che può essere eseguito direttamente sull'hardware?

    • un'istruzione in ISA può essere eseguita su hardware (in questo caso, l'istruzione è una microistruzione?), o deve essere interpretata da un microprogramma per essere una sequenza di microistruzioni da eseguire su hardware?

  2. Dall'organizzazione strutturata di computer di Tanenbaum, ci sono "istruzioni", "istruzioni di registrazione-memoria" e "istruzioni registro-registro" menzionate nella seguente citazione microistruzioni o istruzioni in ISA?

    Most instructions can be divided into one of two categories: register-memory or register-register.

    Register-memory instructions allow memory words to be fetched into registers, where, for example, they can be used as ALU inputs in subsequent instructions. (‘‘Words’’ are the units of data moved between memory and registers. A word might be an integer. We will discuss memory organization later in this chapter.) Other register-memory instructions allow registers to be stored back into memory.

    A typical register-register instruction fetches two operands from the registers, brings them to the ALU input registers, performs some operation on them (such as addition or Boolean AND), and stores the result back in one of the registers. The process of running two operands through the ALU and storing the result is called the data path cycle and is the heart of most CPUs. To a considerable extent, it defines what the machine can do. Modern computers have multiple ALUs operating in parallel and specialized for different functions. The faster the data path cycle is, the faster the machine runs.

  3. È "l'istruzione" in un ciclo fetch-decode-execute menzionato in la seguente citazione una microistruzione o un'istruzione in ISA?

    Se "istruzione" significa una microistruzione, che cos'è un "ciclo" per un'istruzione in ISA quando deve essere interpretata da un microprogramma?

    Quando si esegue un'istruzione di registro-memoria (come nella parte 2) per recuperare le parole di memoria nei registri, si chiama da sola per recuperare se stessa dalla memoria nel registro delle istruzioni nel passaggio 1?

    The CPU executes each instruction in a series of small steps. Roughly speaking, the steps are as follows:

    1. Fetch the next instruction from memory into the instruction register.
    2. Change the program counter to point to the following instruction.
    3. Determine the type of instruction just fetched.
    4. If the instruction uses a word in memory, determine where it is.
    5. Fetch the word, if needed, into a CPU register.
    6. Execute the instruction.
    7. Go to step 1 to begin executing the following instruction.

    This sequence of steps is frequently referred to as the fetch-decode-execute cycle.

  4. Quando si parla di RISC o CISC, si riferiscono a microistruzioni o istruzioni in ISA? Grazie.

posta Tim 20.02.2015 - 16:12
fonte

2 risposte

1
  1. Sono d'accordo con la tua interpretazione. E se un'istruzione ISA si collega a una singola microistruzione, chiamerei comunque un'istruzione e la microistruzione una microistruzione, anche sapendo che c'è un pareggio 1: 1. Esistono architetture di chip di ogni tipo, ma immagino che internamente ci siano differenze nella denominazione e che le cose siano mantenute separate in questo modo, ad es. un progettista di chip potrebbe dire qualcosa del tipo "l'implementazione dell'istruzione MOV consiste unicamente nel richiamo della microistruzione _mov ". Qui sto inventando la mia convenzione di denominazione; il punto è che ci sono ancora due entità diverse qui, anche se capita di corrispondere 1: 1.

  2. Quelle operazioni sarebbero istruzioni; se sono implementati come singole microistruzioni o come microprogrammi, sono ancora concettualmente istruzioni.

  3. Quelle operazioni sarebbero anche istruzioni; la CPU non dovrà mai "recuperare" a microistruzione. Ha già le corrette microistruzioni necessarie per tutte le istruzioni fornite che vengono scaricate nella progettazione del suo circuito.

  4. In un'architettura RISC pura, non esiste una distinzione istruzione / microistruzione. Ogni istruzione è fondamentalmente una singola microistruzione, anche se il termine "microistruzione" non sarebbe tipicamente usata (dal momento che non è necessario tracciare una tale distinzione). Quando parlo di un dispositivo CISC, immagino che le persone parlino principalmente di istruzioni; se si riferiscono alle microistruzioni interne (che sono meno probabili essere un argomento di discussione quotidiana, nella mia esperienza), allora le persone diranno esplicitamente "microistruzione".

risposta data 20.02.2015 - 19:18
fonte
1

1) Un'architettura dell'insieme di istruzioni definisce l'interfaccia utilizzata per programmare un processore. Si noti che questo non definisce l'implementazione. Quando un progettista di CPU progetta il processore, può implementare questo ISA in vari modi. In effetti, i vari processori Intel hanno implementato ciascuno x86 ISA in molti modi diversi nel corso degli anni.

L'architettura del computer è generalmente delineata attorno a un ISA. La microarchitettura del computer è molto specifica per un particolare processore. Ad esempio, un Pentium rispetto a un Pentium Pro implementa per la maggior parte lo stesso set di istruzioni, ad esempio il x86 ISA. Ma le loro microarchitetture erano drasticamente diverse. (Il Pro era fuori servizio per esempio).

Uno dei metodi spesso utilizzati per rendere le pipeline molto veloci è quello di ridurre le istruzioni più complesse alle microistruzioni. Questi sono usati dal "back-end" del processore, che è la parte che ha una o più unità di esecuzione.

Pertanto, il punto dei due tipi di istruzioni ISA vs. microinstruction ha a che fare con l'argomento ISA, cioè l'interfaccia o la microarchitettura, ovvero l'implementazione.

2) Per quanto riguarda la tua seconda domanda, Tanenbaum parlava quasi certamente di istruzioni a livello ISA perché i suoi libri riguardano l'architettura dei computer. La microarchitettura è molto più incentrata sulla progettazione di hardware. Vedi John Stokes, "Dentro la macchina" se sei interessato alla microarchitettura.

3) Per la maggior parte dei processori reali, fetch-decode-execute è del tutto semplicistico per descrivere ciò che accade realmente all'interno. Tuttavia, da un punto di vista ISA, definisce una buona astrazione ai passi che un'istruzione prende.

Il recupero delle istruzioni viene eseguito da hardware dedicato, quindi è diverso dal recupero dei dati dell'istruzione di caricamento. Di solito ci sono in realtà due bus master, istruzioni e dati. Questi autobus hanno spesso le loro cache. In alcuni casi, ad esempio le architetture di harvard, le mappe di memoria dati e istruzioni sono completamente separate.

4) RISC vs. CISC riguarda interamente l'ISA, ovvero l'interfaccia. Tuttavia, la mentalità RISC di utilizzare un set di istruzioni ridotto è molto utile per semplificare la microarchitettura. L'effetto è che le istruzioni microarchitetturali sono generalmente esattamente le stesse delle istruzioni ISA nei processori RISC.

    
risposta data 20.02.2015 - 19:45
fonte

Leggi altre domande sui tag