2.11k likes | 2.25k Views
EEL 3801. Part I Computing Basics. Data Representation. Digital computers are binary in nature. They operate only on 0’s and 1’s . Everything must be expressed in terms of 0’s & 1’s - Instructions, data, memory locs. 1 = “on” voltage at output of electronic device is high (saturated).
E N D
EEL 3801 Part I Computing Basics EEL 3801C
Data Representation Digital computers are binary in nature. They operate only on 0’s and 1’s. • Everything must be expressed in terms of 0’s & 1’s - Instructions, data, memory locs. • 1 = “on” voltage at output of electronic device is high (saturated). • 0 = “off” voltage at output of electronic device is zero. EEL 3801C
Data Representation • The smallest element of information is a “bit” – 0 or 1. But by itself a bit does not convey much information. Therefore: • 8 bits in succession make a “byte”, the smallest addressable binary piece of information • 2 bytes (16 bits in succession) make a “word” EEL 3801C
Data Representation • 2 words (32 bits in succession) make a “double word”. • We can easily understand base 10 numbers. So we need to learn how to convert between binary and decimal numbers. • Decimal numbers are not useful to the computer: a compromise – base 16 numbers (hexadecimal) and base 8 nos., or “octal”. EEL 3801C
Binary Numbers • Each position in a binary number, starting from the right and going left, stands for the power of the number 2 (the base). • The rightmost position represents 20, which = 1. • The second position from the right represents 21= 2. • The third position from the right represents 22 = 4. • The fourth position from the right represents 23 = 8. EEL 3801C
Binary Numbers • The value of an individual binary bit is multiplied by the corresponding base and power of 2, and all the resulting values for all the digits are added together. For ex. 0 0 1 0 1 0 0 1 = 0*27 + 0*26 + 1*25 + 0*24 + 1*23 + 0*22 + 0*21 + 1*20 = 0 + 0 + 32 + 0 + 8 + 0 + 0 +1 = 41 EEL 3801C
Binary Numbers • Conversion from decimal to binary - Two methods: • Division by power of 2: • Find the value of the largest power of 2 that fits into decimal number. • Set 1 for position bit corresponding to that power. • Subtract that value from the decimal number. • Go to the first step, and re-do procedure until remainder is 0 EEL 3801C
Binary Numbers • Example: • decimal number = 146 • Largest value of power of 2 that fits into 146 is 128, or 27 • Set 8th bit (power of 7) to 1 • Subtract 128 from 146 = 18 • Largest value that fits into 18 is 16 or 24 • Set 5th bit (power of 4) to 1 • 18 - 16 = 2 EEL 3801C
Binary Numbers • Example (continued): • Largest power of 2 that fits into 2 is 2, or 21 • Set second bit (power of 1) to1 • Remainder is now 0 • Set all other bits to zero • The binary equivalent = 1 0 0 1 0 0 1 0 EEL 3801C
Binary Numbers • Second Method • Division by 2 • Integer divide the decimal number by 2. • Note the remainder (if even, 0; if odd, 1) • The remainder represents the bit • Integer divide the quotient again by 2 and note remainder. • Continue until quotient = 0 EEL 3801C
Binary Numbers • Example • Decimal number = 146. • 146/2 = 73, remainder = 0 • 73/2 = 36, remainder = 1 • 36/2 = 18, remainder =0 • 18/2 = 9, remainder = 0 • 9/2 = 4, remainder = 1 • 4/2 = 2, remainder = 0 • 2/2 = 1, remainder = 0 EEL 3801C
Binary Numbers • 1/2 = 0, remainder = 1 • 0/2 = 0, remainder = 0 • Starting from the last one, the binary number is now the string of remainders: 0 1 0 0 1 0 0 10 Since the 0 to the left does not count, we can lop it off 1 0 0 1 0 0 1 0 EEL 3801C
Hexadecimal Numbers • Large binary numbers are cumbersome to read. • ==> hexadecimal numbers are used to represent computer memory and instructions. • Hexadecimal numbers range from 0 to 15 (total of sixteen). • Octal numbers range from 0 to 7 (total of 8) EEL 3801C
Hexadecimal Numbers • The letters of the alphabet are used to the numbers represent 10 through 15. • where A=10, B=11, C=12, D=13, E=14, and F=15 • But why use hexadecimal numbers? • 4 binary digits (half a byte) can have a maximum value of 15 (1111), and a minimum value of 0 (0000). EEL 3801C
Hexadecimal Numbers • If we can break up a byte into halves, the upper and lowerhalves, each half would have 4 bits. • A single hexadecimal digit between 0 and F could more concisely represent the binary number represented by those half-bytes. • A byte could then be represented by two hexadecimal digits, rather than 8 bits EEL 3801C
Hexadecimal Numbers • The advantage becomes more evident for larger binary numbers: • 00010110 00000111 10010100 11101010 • 1 6 0 7 9 4 D A • 160794DAh EEL 3801C
Numbers • A radix is placed after the number to indicate the base of the number. • These are always in lower case. • If binary, the radix is a “b”; • if hexadecimal, “h”, • if octal, “o” or “q”. • Decimal is the default, so if it has no indication, it is assumed to be decimal. A “d” can also be used. EEL 3801C
Hexadecimal to Decimal Conversion • Similarly to binary-to-decimal conversion, each digit (position from right to left) of the hex number represents a power of the base (16), starting with power of 0. • 2 F 5 B 2*163 + 15*162 + 5*161 + 11*160 = 2*4096 + 15*256 + 5*16 + 11*1 • = 8192 + 3840 + 80 + 11 = 12,123 EEL 3801C
Binary Conversion into Hexadecimal • Binary to hex is somewhat different, because we in reality, take each 4 bits starting from the right, and convert it to a decimal number. • We then take the hexadecimal equivalent of the decimal number (i.e., 10 = A, 11 = B, etc.) and assign it to each 4 bit sequence. • Each digit in a hex number = “hexadized” decimal equivalent of 4 binary bits. EEL 3801C
Hexadecimal Conversion into Binary • This conversion is also rather simple. • Each hex digit represents 4 bits. The corresponding 4-bit binary sequence replaces the hex digit. For example: • 26AF 0010 0110 1010 1111 EEL 3801C
Signed and Unsigned Integers • Integers are typically represented by one byte (8 bits) or by one word (16 bits). • There exist two types of binary integers: signed and unsigned EEL 3801C
Unsigned Integers • Unsigned integers are easy – they use all 8 or 16 bits in the byte or word to represent the number. • If a byte, the total range is 0 to 255 (00000000 to 11111111). • If a word, the total range is 0 to 65,535 (0000000000000000 to 1111111111111111). EEL 3801C
Signed Integers • Are slightly more complicated, as they can only use 7 or 15 of the bits to represent the number. The highest bit is used to indicate the sign. • A high bit of 0 positive number • A high bit of 1 negative number - counter intuitive, but more efficient. EEL 3801C
Signed numbers (cont.) • The range of a signed integer in a byte is therefore, -128 to127, remembering that the high bit does not count. • The range of a signed integer in a word is –32,768 to 32,767. EEL 3801C
The One’s Complement • The one’s complement of a binary number is when all digits are reversed in value. • For example, 0 0 0 1 1 0 1 1 has a one’s complement of 1 1 1 0 0 1 0 0 EEL 3801C
Storage of Numbers • Unsigned numbers and positive signed numbers are stored as described above. • Negatively signed numbers, however, are stored in a format called the “Two’s complement” which allows it to be added to another number as if it was positive. EEL 3801C
Storage of Numbers (cont.) • The Two’s Complement of a number is obtained by adding 1 to the lowest bit of the one’s complement of the number. • The Two’s Complement is perfectly reversible • TC (TC (number)) = number. EEL 3801C
Storage of Numbers (cont.) • Therefore, if the high bit is set (to 1), the number is a negatively signed integer. • But, its decimal value can only be obtained by taking the two’s complement, and then converting to decimal. • If the high bit is not set (= 0), then the number can be directly converted into decimal. EEL 3801C
Example • 0 0 0 0 1 0 1 0 is a positive number, as the high bit is 0. • 0 0 0 0 1 0 1 0 can be easily converted to 10 decimal in a straightforward fashion. • 0 0 0 0 1 0 1 0 = 10 decimal EEL 3801C
Example (cont.) • 1 0 0 0 1 0 1 0 is a negative number because of the high bit being set. • 1 0 0 0 1 0 1 0, however, is not –10, as we first have to determine its two’s complement. EEL 3801C
Example (cont.) • One’s Complement of (1 0 0 0 1 0 1 0) (0 1 1 1 0 1 0 1), • add 1 (0 1 1 1 0 1 1 0) • 64 + 32 + 16 + 4 + 2 = -118 EEL 3801C
Character Representation – ASCII • How do we represent non-numeric characters as well as the symbols for the decimal digits themselves if we want to get an alphanumeric combination? • Typically, characters are represented using only one byte minus the high bit (7-bit code). EEL 3801C
Character Representation – ASCII (cont.) • Bits 00h to 7Fh represent the possible values. The ASCII table maps the binary number designated to be a character with a specific character. The back inside cover of the textbook contains that mapping. • If the eighth bit is used (as is done in the IBM PC to extend the mapping to Greek and graphics symbols), then the hex numbers used are 80h to FFh. EEL 3801C
Character Representation – ASCII (cont.) • The programmer has to keep track of what a binary number in a program stands for. • It is not inherent in the hardware or the operating system. • High level languages do this by forcing you to declare a variable as being of a certain type. • Different data types have different lengths EEL 3801C
EEL 3801 Part II System Architecture EEL 3801C
Components • Video Display Terminal – self explanatory • Keyboard – self-explanatory • Disk Drives – self-explanatory • System Unit – contains the motherboard or the system board. Otherwise self-explanatory EEL 3801C
Components (cont.) • Random Access Memory (RAM) – Electronic memory where the program and the data are kept while the program is running. It is volatile since the contents are lost if there is loss of power. Additionally, it is also called dynamic since its contents must be continuously refreshed. EEL 3801C
Components (cont.) • Read-Only Memory (ROM) BIOS – Contains the information on the input output peripherals. • CMOS RAM – Keeps system setup information. • Expansion slots – Permit expansion of the system by adding special purpose boards such as modems, communication cards, etc. EEL 3801C
Components (cont.) • Power Supply – Self-explanatory • Parallel Port – Output port that transfers a set of bits simultaneously. Typically used for printers. Allow for quick transfer of data but only for short distances. • Serial port – Output port where single bits are produced one by one. Slower, but useful for longer distances. EEL 3801C
Components (cont.) • Microprocessor – Intel microprocessors are downwardly compatible with each othe. • Programs written on older versions will run on the newer ones, but programs written for the newer versions will not run on the older ones. • Read Section 2.1 of the textbook for more details. EEL 3801C
System Architecture • The Central Processing Unit (CPU) is the most important part of the computer. It consists of the Arithmetic logic Unit (ALU) and the Control Unit (CU). • The ALU carries out arithmetic, logic and shifting operations. • The CU fetches data and instructions and decodes addresses for the ALU. EEL 3801C
System Architecture (cont.) • Additionally, there may be a math coprocessor, which speeds up mathematical calculations, as well as many other support chips. However, they are all coordinated by the CPU. EEL 3801C
The CPU • The most basic tasks of the CPU are: • Find and load the next instruction from memory. • Execute the instruction. This is composed of several sub-instructions that we will discuss later. EEL 3801C
The CPU (cont.) • The CPU, besides the ALU and CU, is composed of several other components: • Data bus: Wires that move data within the CPU itself. • Registers: High-speed memory elements within the CPU itself on which can significantly speed up the performance of the computer. • Clock: A timing device whose ticks coordinate all individual operations that take place in the computer. These ticks are called machine cycles. EEL 3801C
Registers • Registers are special work areas inside the CPU that can store data and/or instructions. • These memory elements are very fast. • There are several registers on the Intel 8088 family of microprocessors: • Data registers • Segment registers • Index registers • Special registers • Flag register EEL 3801C
Data Registers • Also called general purpose registers. • Are used for arithmetic and data manipulation operations. • Can be addressed as either 8 or 16 bit values, or as both. • The 80386 and newer CPU’s use 32-bit registers addressable as 16-bit ones. EEL 3801C
Data Registers (cont.) • There are several of these. • The AX Register: the accumulator register is used by the CPU for arithmetic operations. • It is a 16-bit register, but can be addressed as two independent 8-bit registers called AH (for high) and AL (for low). EEL 3801C
Data Registers (cont.) • The BX Register: the base register is also general purpose (like the AX). • Has the ability to hold addresses for other variables (pointers). • Also 16-bit that can be independently addressed as two 8-bit bytes (BH and BL). EEL 3801C
Data Registers (cont.) • The CX register: the counter register best serves as the counter for repeating looping instructions. • These instructions automatically repeat and decrement the CX register, and quit when it equals 0. • Also 16-bit that can be independently addressed as two 8-bit bytes (CH and CL). EEL 3801C
Data Registers (cont.) • The DX Register: the data register is also general purpose but has a special role when doing multiplication or division. EEL 3801C