Com sé quants cicles té la meva CPU?

Aquesta és una pregunta d'examen (examen de pràctiques, no de veritat) però no tinc ni idea de com solucionar la resposta:

L' ordinador té una CPU de 64 bits amb una velocitat de 2GHz, les instruccions fan l' entrada programada/ Sortida a un dispositiu que està vinculat a un bus 33 MHz (32 bits d' amplada). Els registres del dispositiu estan sent gravats per la memòria a l'abast dels 000 a l'E0ff.

(MOVQ $A, R realitza una còpia de 64 bits de l' adreça A per registrar R.)

Bàsicament, quants cicles de CPU trigarien a executar aquestes instruccions?

  • MOVQ $0xe00, r1
  • MOVQ $0xe00, r2
  • MOVQ $0xe00, r3
  • MOVQ $0xe00, r4
  • MOVQ $0xe008, r5

És una resposta d'elecció múltiple i aquí teniu les possibles opcions:

  • a. Aproximadament 120 cicles de la CPU
  • b. Nombre de cicles de la CPU de 240
  • c. Aproximadament 600 cicles de CPU
  • d. Aproximadament 1200 cicles de CPU
  • p. 000 cicles de CPU

Així que, encara que estic buscant la resposta, també busco la raó darrere la resposta correcta per poder contestar-ho correctament fent-ho si una pregunta similar està en el examen real.

No puc trobar res en els llibres de text ni en línia per ajudar-me a calcular això.

Com que els registres són 64 bits, heu de transferir 64 bits. L'autobús té 32 bits d'ample, de manera que vol dir 2 transferències. A la velocitat de l'autobús de 33MHz, és 2/33MHz ~ 60.6ns. Des que el cpu és 2GHz cada cicle és 1/2GHz=0.5ns. Per tant el nombre de cicles és 60.6ns/0. 5ns ~ 120. Això és per a cadascuna de les instruccions. Si la pregunta vol dir total, llavors és 5* 120 = 600.

la CPU descodifica les instruccions, imagina el que vol, i acaba enviant una petició de "llegir" en un autobús o enllaç. Fem veure que costa 1 cicle de CPU.

L' enllaç o enllaç de la CPU probablement no serà el bus 33 MHz que usa el dispositiu (perquè una CPU 2 GHz amb 33 MHz simplement la RAM no és plausible). Normalment hi ha un bus local ràpid (o un conjunt ràpid d' enllaços) connectant CPU/s, RAM i altres coses (perforadors, ponts); després el bus/es més lent de l' altra banda d'aquestes altres coses. Diguem que triga 2 cicles de bus ràpid per a la petició de "llegir de la CPU" per a ser reenviat des del bus ràpid fins al 33 MHz del dispositiu, i també suposem que els cicles de buss "2 ràpids" són equivalents a 4 cicles de CPU.

Quan la petició de "llegir" el fa al bus de 33 MHz, que l' autobús és 32 bits, però la petició de lectura pròpia consisteix en múltiples camps - p. ex. Potser un camp de "transitació" i un camp d'adreça de 32 bits (i potser un "startup/ end" per a la sincronització i potser un CRC per a la detecció d' errors i.). Fem veure que pren 2 cicles de bus (1 cicle de bus per a cada camp) per a la petició de "llegir" per a fer-ho al dispositiu.

Després del dispositiu rep la petició de "llegir," cal descodificar- la i esbrinar què fer. Això podria prendre alguns cicles més de bus (però realment depèn del propi dispositiu), però suposem que pren 2 cicles.

Al final el dispositiu enviarà una resposta de "llegir." Això probablement serà un paquet més gran (p. ex. Camp "transparament d'acció," camp "l' adreça de 32 bits," i "informació de 64 bits" dividit en dos camps de 32 bits). Diguem que triga 4 cicles d'autobús per a que això torni a l'eixer/bridge en el bus ràpid.

Al "autobús ràpid," potser podem esperar que l'equivalent a 6 cicles de CPU per a la resposta de "llegir" per tornar-lo a la CPU.

Una vegada que la resposta "llegir" torni a la CPU, la CPU pot passar 1 cicles que completin la instrucció.

Ara podem connectar-ho i dir que pot prendre "10 + 488 = 498" cicles de CPU d'un sol lectura per completar-se. Hi ha 5 llegeix per tal que tarda 5 vegades més, així que pot trigar 2440 cicles de CPU.

Ara... hem fet una pila d'informació desapareguda, i "2440 cicles de la CPU" no és una de les opcions. La cosa natural a fer en aquest cas és intentar esbrinar per què la pregunta és sense sentit. La informació desapareguda implica que diverses coses que importen van ser ignorades per la pregunta, i per tant és raonable assumir que la resposta errònia pensa que la pregunta és correcta serà menys que qualsevol resposta correcta que la qüestió sigui errònia (i menys de la resposta obtinguda per omplir la informació desapareguda). Aquesta suposició ens porta a " d. Aproximadament 1200 cicles de CPU ".

Amb una resposta assumida podem treballar cap enrere. Si la resposta assumida és de 1200 cicles i hi ha 5 instruccions, seria 240 cicles de CPU per instrucció. Si un cicle de bus és equivalent a 61 cicles de CPU; aleshores 240 cicles de CPU serien aproximadament equivalents a 4 cicles d' autobús (gnoging el temps gastat la descodificació, etc. a la CPU, que probablement és negligent). Ara podem fer veure que potser la petició de "llegir" té una adreça de 32 bits i res més (sense tipus de transacció) i potser la resposta de "llegir" té una adreça de 32 bits i un valor de 64 bits i res més (sense tipus de transacció). Per descomptat, això és pura ximpleria (sense encaminador/bridge implica la RAM és de 33 MHz o no existeix; cap tipus de transacció vol dir que no hi ha manera obvia de determinar si alguna cosa a l'autobús és una petició o una resposta, o una lectura o una escriptura o qualsevol altre tipus de transacció - p. ex. IRQ o codi d' error o tràfic de coherència o.; no hi ha temps per a determinar què implica el dispositiu que ha trobat una manera d' electrònics per a trencar la velocitat de la llum).

Artículos Relacionados:

- Processador -

Esta web usa cookies, puedes ver la política de cookies, aquí -
Política de cookies +