Õppetund
Teooria — Pisike protsessor: Little Man Computer
Käsu toomise, dekodeerimise ja täitmise tsükkel kordub protsessoris iga käsu puhul. Toomisel kopeeritakse PC väärtus MAR-i, loetakse vastava postkasti sisu MDR-i, kopeeritakse see CIR-i ja liidetakse PC väärtusele 1. Dekodeerimisel eraldatakse käsust operatsioon, mille määrab sajaliste kohal olev number, ja aadress, mille annavad kaks viimast numbrit. Erandiks on 901, 902 ja 000: need on käskude INP, OUT ja HLT terviklikud koodid ega sisalda postkasti aadressi. Täitmisel sooritatakse käsk. Selleks võidakse MAR-i ja MDR-i kaudu veel üht postkasti lugeda või sinna kirjutada.
Mida iga sümbol tähendab
PC- käsuloendur: järgmise mälust toodava käsu aadress
MAR- mäluaadressiregister: selle postkasti aadress, millest hakatakse lugema või kuhu kirjutama
MDR- mäluandmeregister: äsja loetud või kirjutamiseks valmis väärtus
CIR- käsuregister: parajasti täidetav käsk
ACC- akumulaator: siia paigutavad oma tulemuse ADD, SUB ja LDA
- Eeldab
- Stuart Madnicki Little Man Computer (MIT, 1965) ei määra, mis juhtub, kui SUB annab negatiivse tulemuse või ADD tulemus ületab 999. Selle simulaatori akumulaator mahutab väärtusi −999 kuni 999, seega kontrollib BRP väärtuse märki. Väljapoole seda vahemikku jääv tulemus peatab käivituse ületäitumise tõttu, selle asemel et liikuda ringiga vahemiku teise otsa. Õppesimulaatorid käsitlevad seda erinevalt. Programm, mille akumulaatori väärtus püsib vahemikus 0 kuni 999, töötab kõigis ühtemoodi.
Ülesanne täielikult lahendatud
-
Miks 2 × 99 vajab 801 käsku ja 99 × 2 vaid 25 4 sammu
Vajuta nuppu 2 × 99 aeglaselt ja muuda seejärel sisenditeks 99 ja 2. Mõlemal juhul väljastab programm 198. Loenda kummalgi käivitusel täidetud käsud, leia valem ja ütle, kui palju käske kulub sisendite ebasoodsama järjestuse korral, kui korrutis mahub ühte postkasti.
-
Enne tsüklit täidetakse kaks INP- ja kaks STA-käsku: kokku 4 käsku. Tsükli kehas on LDA b, BRZ, SUB one, STA b, LDA total, ADD a, STA total, BRA loop: 8 käsku, mida korratakse b korda.
-
Kui b jõuab nulli, täidetakse tsüklist ainult LDA b ja BRZ. Seejärel lõpetavad programmi LDA total, OUT ja HLT: veel 5 käsku. Üks käivitus nõuab seega 4 + 8b + 5 = 8b + 9 käsku. Arv a selles avaldises ei esine.
-
Kui b = 99, on käskude arv 8 × 99 + 9 = 801; kui b = 2, on see 25. Tulemuste tabel näitab esimese järjekorra puhul 801 ja teise puhul 25.
-
Suurim postkasti mahtuv korrutis on 999. Sisenditega 1, 999 läbitakse tsükkel 999 korda: kokku 8 001 käsku. Sisenditega 999, 1 läbitakse see ühe korra: 17 käsku.
Vastus
8b + 9 käsku, kus b on teine sisend. Sama korrutise 999 leidmiseks kulub ühes järjekorras 8 001 käsku ja teises 17, ligikaudu 470 korda rohkem. Kui programm võrdleks kõigepealt sisendeid ja kordaks tsüklit väiksema arvu järgi, kuluks kõige rohkem 8 × 31 + 9 käsku ning lisaks võrdlemiseks vajalikud käsud: kuni 999 ulatuva korrutise väiksem tegur on kõige rohkem 31.
-
Õpitee
Kuidas arvuti programmi täidab
Allikad (4)
- Where the third insight's phrase comes from: the connecting tube between CPU and store, named the von Neumann bottleneck, and the remark that much of its traffic is not data but the names of data: John Backus, "Can programming be liberated from the von Neumann style? A functional style and its algebra of programs." Communications of the ACM 21(8), 613–641, August 1978. The 1977 ACM Turing Award Lecture.
- The date the first insight gives for the stored-program idea first running: The University of Manchester, "How a 70-year-old 'Baby' changed the face of modern computing." News, 21 June 2018.
- The machine itself: Madnick's 1965 design, the instruction codes, and the fact the page's assumes rests on, that a negative or over-999 result is left undefined: "Little man computer." Wikipedia, read 14 October 2026.
- A school simulator's instruction table, with BRP described as branching when the accumulator is zero or positive, the sign convention this page follows: 101computing.net, "LMC Simulator."