--- title: Microprocessors part 1 b/c why not? id: 732 html_url: "https://acmcsuf.com/blog/732" discussion_url: "https://github.com/EthanThatOneKid/acmcsuf.com/discussions/732" author: "EBYEMJC1 (https://github.com/EBYEMJC1)" labels: [] created: "2022-11-23T09:54:22.000Z" edited: "2022-11-23T10:23:57.000Z" --- Microprocessors part 1 b/c why not? =================================== How many of you have been totally lost when reading something? Me!! This is why vocabulary is super important when reading, ask any teacher. When reading something do not just skip over stuff you don't understand although it may be tempting, look it up. It is a book, you can always go back so take advantage of that and pause in-between readings and figure out what you don't understand. This is like the first thing we learned in EDSC 330 and it will be part of this blog post, tell me what you learned and what you still don't understand if it is even an option to interact with this. For the intro blog post for the microprocessor series, here is a bunch of vocabulary words that are kind of randomly ordered and a bit messy, sorry. Levels of abstraction Physics - motion of electrons and behavior of the electrons described by quantum mechanics and maxwell’s equations (I think phys 226 covers some of this if want to learn about it) Electronic devices - ex. Transistors, capacitors, resistors, that have well defined connection point s called terminals that can be modeled by the relationship between voltage and current measured at each terminal each logic circuit is implemented in accordance with device technology so cmos circuits are different than nmos circuits which are different from gallium arsenide circuits Transistors are electronically controlled switches that turn on or off when a voltage or current is applied to a control terminal Analog circuits - input and output a continuous range of voltages Digital circuits - restrict voltages to discrete ranges which are used to indicate a 0 or 1 and are a subset of analog circuits and must be capable of less than broader class of analog circuits Logic design- build more complex structures such as adders or memories from digital circuits From the programmer's perspective Microarchitecture - links logic design and architecture levels implementation of isa what is going on under the hood cost and performance tradeoffs is result of designer’s decisions regarding tradeoffs of cost and performance examples include that x86 has had many implementations such as 8086, 80286, skylake Architecture - describes a computer from the programmer's perspective for example intel x86 is defined by a set of instructions and registers that a programmer is allowed to use The microarchitecture combines the logic elements to execute the instructions defined by the architecture Different types of microarchitectures for example x86 architecture can be implemented by microarchitectures such as intel core i7 or amd athlon or some other microarchitecture (do this different microarchitectures have different logic designs or just different links that result in different performance?) translate the program into the instruction set of the particular computer that will carry out the work of the program ISA or architecture - is the complete specification of the interface between programs that have been written and the underlying computer hardware that must carry out the work of those programs interface between computer program and the computer hardware Opcode-operation or function like lets say multiply Operand - t individual data values Data types - what isa specifies the acceptable representation for operands in other words a representation of an operand such that the computer can perform operations on that representation so like strings or ints or whatever Addressing modes - ISA also specifies the mechanism that the computer can use to figure out where the operands are located so like different ways in which a source operand is denoted in an instruction link explaining addressing modes in 8086 [https://www.tutorialspoint.com/microprocessor/microprocessor_8086_addressing_modes.htm] Some isas have as few as a dozen opcodes or operations while others have more and some have a few data types while other have more some have a few addressing modes while others have more Isa also specifies the number of unique locations that make up a computer's memory as well as number of individual 0s and 1s that are contained in each location Compiler - translating program that translates high level languages to isa of the computer that the program will execute on What in the world is an assembler?? An example of an isa is the x86 isa Operating system - handles low levels of details such as accessing a hard drive or managing memory Application software - uses facilities provided by operating system to solve a problem for the user Managing complexity: Abstraction - hiding details when they are not important there are many levels of abstraction. Electronic devices are an abstraction of the physics behind electron move or operating systems are an abstraction of microarchitecture ex2. Using 0s and 1s instead of varying voltages of transistors in logic gates, another example is a circuit being an abstraction of the gates that make it up. You can basically think of seeing something as the sum of its parts and kind of ignoring the parts a great example is a mosaic Deconstruction - the ability to go from abstraction to the component parts so from bottom to top in our list of vocab starting at operating system ending at physics or the opposite of abstraction Discipline - intentionally restricting design choices so can work more productively at a higher level of abstraction and using interchangeable parts is a familiar application of discipline an example of this is using digital circuits which intentionally restrict the function of analog circuits to do a task Hierarchy - dividing a system into modules then further subdividing each module into smaller parts until the pieces are easy to understand Modularity - the modules have well-defined functions and interfaces so they can connect together easily without unanticipated side effects Regularity - seeks uniformity among modules so that they can be reused many times reducing the number of distinct modules that must be designed Beginning of Computer systems Software - directs hardware so basically telling hardware what to do Hardware - physical parts of the computer that performs the actual processing like adding or subtracting also called CPU, processor, or microprocessor Computer - hardware + software levels of transformation Natural languages - languages people speak like English The problem with natural languages is that there is a lot of ambiguity like if I said time flies you should be able to know that it means that time is passing by quickly but someone might view it as time literally flying or maybe think of a group of flies called time flies just like a group of whales like humpback whales. Point is context matters and there are expressions that may be hard to understand especially since they are not universal this multiple interpretations of the same instruction makes it hard for computers to understand natural language Algorithms - is a step by step procedure that is guaranteed to terminate such that each step is precisely stated and can be carried out by the computer Defitness - each step is precisely stated Effective computability - each step can be carried out by the computer Finiteness - the procedure terminates For every problem there are usually many different algorithms for solving that problem but differ in amount of time or resources or steps or whatever Program - transform the algorithm to a computer program through use of programming languages which are mechanical languages Mechanical languages - invented for use in specifying a sequence of instructions to a computer so do not have ambiguity Languages are machine independent meaning they should work no matter the machine this is for high level languages while low level languages may be machine dependent as there is different types of assembly language for different computers Instruction set look above - Microarchitecture - look above Logic circuit - look above The device - look above Total gibberish, right? Look up turing Look up nmos, mos, and cmos, we will maybe go over these when we go over logic gates which should be after binary numbers God willing, no promises though Next blog will be on binary numbers and number systems