X86 procesoru arhitektūras izlaidums

Arhitektura Računara - Prezentacije - 06 Potprogrami (Jūnijs 2019).

$config[ads_text] not found
Anonim

X86 procesoru arhitektūras izlaidums


Mikroprocesoru pamatdizains

Lai gan šīs raksta sērijas priekšmets ir balstīts uz asamblejas valodas lietošanu x86 procesoru arhitektūrai, būs noderīga kāda fona informācija, kas attiecas uz x86 procesoriem. Šis ir pirmais sērijā.

Centrālā procesora vienība (CPU) ir vieta, kur notiek visi aprēķini un loģiskās operācijas. CPU satur ierobežotu skaitu glabāšanas vietu vai reģistru, augstfrekvences pulksteni, piemēram, vadības bloku un aritmētiskās loģikas vienību.

Pulkstenis sinhronizē CPU iekšējās darbības ar citām sistēmas sastāvdaļām.
Vadības bloks (CU) organizē soļu izpildes secību, kas attiecas uz sistēmas instrukciju izpildi.
Aritmētiskā loģiskā vienība (ALU) veic aritmētiskās darbības, piemēram, pievienošanu un atņemšanu, kā arī loģiskās operācijas, piemēram, AND, OR un NOT.

Aplūkojot sistēmu, CPU tiek pievienots pārējai datora daļai, izmantojot datora mātesplatē esošo CPU ligzdu. Lielākā daļa CPU piespraudes ir savienoti ar datu kopni, vadības busu un adreses kopni. Atmiņas uzglabāšanas vienība ir vieta, kur instrukcijas un dati tiek īslaicīgi saglabāti, kamēr darbojas datorprogramma. Uzglabāšanas ierīce saņem pieprasījumu no CPU datiem, pēc tam visus datus, kas tiek glabāti no brīvpiekļuves atmiņas (RAM), pārraida CPU, un visbeidzot pārsūta datus no CPU uz atmiņu. Visa datu apstrāde notiek CPU, tāpēc programmām, kas pastāv atmiņā, jākopē CPU, pirms tās var izpildīt visas komandas. Atsevišķas programmas instrukcijas vai funkcijas var vienlaicīgi nokopēt CPU, vai grupas vienlaicīgi var kopēt kopā.

Autobuss ir paralēlu vadu grupa, kas pārsūta datus no vienas datorsistēmas daļas uz otru. Datorsistēmā parasti ir četri autobusu veidi: dati, ievades un izvades dati (I / O), kontrole un adrese. Datu kopija nodod instrukcijas un datus starp CPU un atmiņu. I / O kopne pārsūta datus starp CPU un datora sistēmas ierīcēm, kurām ir ieejas / izejas komandas. Vadības autobuss izmanto bināros signālus, lai sinhronizētu jebkuras ierīces darbību, kas ir savienota ar sistēmas autobusu. Visbeidzot, adreses kopnei ir instrukciju un datu adreses, kad pašreizējā izpildes instrukcija nodod datus starp CPU un atmiņu. Zemāk redzams mikrokompilācijas blokshēma.

Instrukciju izpildes cikls

Viena automāta instrukcijas izpildi var sadalīt atsevišķu darbību secībā, ko sauc par instrukciju izpildes ciklu. Pirms jebkādas izpildes var notikt programma ielādēta atmiņā. Instrukcijas rādītājs satur nākamās izpildāmās instrukcijas adresi. Veicot mašīnas instrukcijas, ir nepieciešami trīs pamata soļi: ielādēt, atšifrēt un izpildīt. Ja instrukcija izmanto atmiņas operandu, ir nepieciešami vēl divi soļi: ievākt operandu un izejas operandu. Katru no soļiem var raksturot šādi:

Ienākšana: vadības bloks no instrukcijas izgūst nākamo izpildes instrukciju un palielina instrukciju rādītāju (IP). IP ir pazīstams kā programmas skaitītājs.
Decodēt: vadības bloks dekodē instrukcijas funkciju, lai noteiktu, ko rīkosies. Instrukcijas ievades operandes tiek nodotas ALU, un signāli tiek nosūtīti uz LAU, norādot veicamo darbību.
Operāciju ievade: ja instrukcijā tiek izmantota ievades operands, kas atrodas atmiņā, CU izmanto operāciju lasīšanai, lai izgūtu operandu un kopētu to iekšējos reģistros. Iekšējie reģistri nav redzami nevienai lietotāja programmai.
Izpildīt: ALU izpilda norādījumu, izmantojot nosauktos reģistrus un iekšējos reģistrus kā operandus, un nosūta izvadi uz nosauktajiem reģistriem un / vai atmiņu.
Veikala izejas operands: ja izvades operands ir atmiņā, CU izmanto datu ierakstīšanas darbību.

Tālāk ir sniegta diagramma, kas palīdz parādīt attiecības starp komponentiem, kas mijiedarbojas instrukciju izpildes cikla laikā. Ja programmas instrukcijas ir jālasa no atmiņas, uz adreses kopni tiek ievietota adrese. Tālāk atmiņas kontrolleris ievieto pieprasīto kodu datu kopnei, ļauj kodam piekļūt koda kešatmiņā. Rokas rādītāju vērtība nosaka, kuras programmas instrukcijas izpildīs nākamais. Instrukcija tiek analizēta ar instrukciju atkodēšanu, izraisot attiecīgu ciparu signālu nosūtīšanu uz vadības bloku, kas koordinē ALU un peldošā komata vienību. Attēlā nav redzama kontroles kopne, bet tajā ir dažādi signāli, kas izmanto sistēmas pulksteni, lai koordinētu datu pārsūtīšanu starp dažādiem CPU komponentiem.

Lasīšana no atmiņas

Programmas caurlaidspēja bieži ir atkarīga no atmiņas piekļuves ātruma. CPU pulksteņa ātrums varētu būt astoņi gigabaiti, savukārt atmiņā piekļūstot sistēmas kopnei, kas darbojas daudz lēnāk nekā pulksteņa ātrums. CPU jāgaida viens vai vairāki pulksteņa cikli, līdz operandi tiek izņemti no atmiņas, pirms pašreizējā instrukcija var pabeigt pilnu izpildi. Izšķērdētais pulksteņa cikls ir pazīstams kā gaidīšanas stāvokļi.

Lasot instrukcijas vai datus no atmiņas, ko kontrolē procesora pulkstenis, ir nepieciešami vairāki soļi. Zemāk redzamajā diagrammā attēlota procesora pulksteņa (CLK) pieaugums un krišanās regulāros laika intervālos. Šajā attēlā pulksteņa cikls sākas, tiklīdz pulksteņa signāls mainās no augšas uz zemu (no 1 līdz 0). Šīs izmaiņas ir pazīstamas kā aizmugurējās malas, un tās norāda laiku, ko veic pāreja starp katru valsti.

Zemāk ir samazināts apraksts par to, kas notiek katra pulksteņa cikla laikā, kad tiek nolasīta atmiņa:

1. cikls: atmiņas operands adreses biti tiek novietots uz adrešu kopni (ADDR). Diagrammas adreses līnijas šķērso, parādot, ka daži biti ir vienādi 1 un citi ir vienādi ar 0.
2. cikls: lasīšanas līnija (RD) ir iestatīta zemā līmenī (o), lai informētu atmiņu, ka vērtība ir jālasa.
3. cikls: CPU gaida vienu ciklu, lai dotu atmiņas laiku, lai atbildētu. Šajā periodā atmiņas kontrolleris ievieto operandu datu kopnei (DATI).
4. cikls: lasīšanas līnija iet uz 1, signalizējot, ka CPU nolasa datus datu bāzē.

Sekos

Šajā brīdī jums ir jābūt pamata izpratnei par x86 procesora arhitektūras pamatiem, jo ​​tie darbojas ar datorsistēmu. Nākotnes rakstos pievērsīsies x86 arhitektūras detaļām, piemēram, programmām un vairākuzdevumiem. Citas tēmas, kuras tiks detalizēti aprakstītas, ir darbības izpildes vides režīmi, izpildes reģistri un x86 atmiņas pārvaldība, lai jūs saprastu un uzlabotu savas x86 procesora zināšanas.

Nākamais raksts sērijā: x86 arhitektūra: procesi un izpildes vides