Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Computer program
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Microcode program=== {{main|Microcode}} [[File:Not-gate-en.svg|thumb|96px|right|NOT gate]] [[File:NAND_ANSI_Labelled.svg|thumb|96px|right|NAND gate]] [[File:NOR_ANSI_Labelled.svg|thumb|96px|right|NOR gate]] [[File:AND_ANSI_Labelled.svg|thumb|96px|right|AND gate]] [[File:OR_ANSI_Labelled.svg|thumb|96px|right|OR gate]] A [[Microcode|microcode program]] is the bottom-level interpreter that controls the [[data path]] of software-driven computers.<ref name="sco6th-ch1-p6">{{cite book | last = Tanenbaum | first = Andrew S. | title = Structured Computer Organization, Sixth Edition | publisher = Pearson | year = 2013 | page = 6 | isbn = 978-0-13-291652-3 }}</ref> (Advances in [[Random logic|hardware]] have migrated these operations to [[Control unit#Hardwired control unit|hardware execution circuits]].)<ref name="sco6th-ch1-p6"/> Microcode instructions allow the programmer to more easily implement the [[Logic level|digital logic level]]<ref name="sco6th-ch4-p243">{{cite book | last = Tanenbaum | first = Andrew S. | title = Structured Computer Organization, Sixth Edition | publisher = Pearson | year = 2013 | page = 243 | isbn = 978-0-13-291652-3 }}</ref>βthe computer's real hardware. The digital logic level is the boundary between [[computer science]] and [[computer engineering]].<ref name="sco6th-ch3-p147">{{cite book | last = Tanenbaum | first = Andrew S. | title = Structured Computer Organization, Sixth Edition | publisher = Pearson | year = 2013 | page = 147 | isbn = 978-0-13-291652-3 }}</ref> A [[logic gate]] is a tiny [[Field-effect transistor|transistor]] that can return one of two signals: on or off.<ref name="sco6th-ch3-p148">{{cite book | last = Tanenbaum | first = Andrew S. | title = Structured Computer Organization, Sixth Edition | publisher = Pearson | year = 2013 | page = 148 | isbn = 978-0-13-291652-3 }}</ref> * Having one transistor forms the [[NOT gate]]. * Connecting two transistors in series forms the [[NAND gate]]. * Connecting two transistors in parallel forms the [[NOR gate]]. * Connecting a NOT gate to a NAND gate forms the [[AND gate]]. * Connecting a NOT gate to a NOR gate forms the [[OR gate]]. These five gates form the building blocks of [[Boolean algebra|binary algebra]]βthe digital logic functions of the computer. Microcode instructions are [[Assembly language#Mnemonics|mnemonics]] programmers may use to execute digital logic functions instead of forming them in binary algebra. They are stored in a [[central processing unit|central processing unit's]] (CPU) [[control store]].<ref name="sco6th-ch4-p253">{{cite book | last = Tanenbaum | first = Andrew S. | title = Structured Computer Organization, Sixth Edition | publisher = Pearson | year = 2013 | page = 253 | isbn = 978-0-13-291652-3 }}</ref> These hardware-level instructions move data throughout the [[data path]]. The micro-instruction cycle begins when the [[microsequencer]] uses its microprogram counter to ''fetch'' the next [[machine instruction]] from [[random-access memory]].<ref name="sco6th-ch4-p255">{{cite book | last = Tanenbaum | first = Andrew S. | title = Structured Computer Organization, Sixth Edition | publisher = Pearson | year = 2013 | page = 255 | isbn = 978-0-13-291652-3 }}</ref> The next step is to ''decode'' the machine instruction by selecting the proper output line to the hardware module.<ref name="sco6th-ch3-p161">{{cite book | last = Tanenbaum | first = Andrew S. | title = Structured Computer Organization, Sixth Edition | publisher = Pearson | year = 2013 | page = 161 | isbn = 978-0-13-291652-3 }}</ref> The final step is to ''execute'' the instruction using the hardware module's set of gates. [[File:ALU block.gif|thumb|right|A symbolic representation of an ALU]] Instructions to perform arithmetic are passed through an [[arithmetic logic unit]] (ALU).<ref name="sco6th-ch3-p166">{{cite book | last = Tanenbaum | first = Andrew S. | title = Structured Computer Organization, Sixth Edition | publisher = Pearson | year = 2013 | page = 166 | isbn = 978-0-13-291652-3 }}</ref> The ALU has circuits to perform elementary operations to add, shift, and compare integers. By combining and looping the elementary operations through the ALU, the CPU performs its complex arithmetic. Microcode instructions move data between the CPU and the [[memory controller]]. Memory controller microcode instructions manipulate two [[Processor register|registers]]. The [[memory address register]] is used to access each memory cell's address. The [[memory data register]] is used to set and read each cell's contents.<ref name="sco6th-ch4-p249">{{cite book | last = Tanenbaum | first = Andrew S. | title = Structured Computer Organization, Sixth Edition | publisher = Pearson | year = 2013 | page = 249 | isbn = 978-0-13-291652-3 }}</ref> Microcode instructions move data between the CPU and the many [[computer buses]]. The [[Disk controller|disk controller bus]] writes to and reads from [[hard disk drive]]s. Data is also moved between the CPU and other functional units via the [[PCI Express|peripheral component interconnect express bus.]]<ref name="sco6th-ch2-p111">{{cite book | last = Tanenbaum | first = Andrew S. | title = Structured Computer Organization, Sixth Edition | publisher = Pearson | year = 2013 | page = 111 | isbn = 978-0-13-291652-3 }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)