1 / 19

CS 325: CS Hardware and Software Organization and Architecture

CS 325: CS Hardware and Software Organization and Architecture. Integers and Arithmetic Part 4. Outline. Binary Multiplication Booth’s Algorithm Number Representations. 2’s Complement Binary Multiplication – Booth’s Algorithm. Multiplication by bit shifting and addition.

seamus
Télécharger la présentation

CS 325: CS Hardware and Software Organization and Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 325: CS Hardware and SoftwareOrganization and Architecture Integers and Arithmetic Part 4

  2. Outline • Binary Multiplication • Booth’s Algorithm • Number Representations

  3. 2’s Complement Binary Multiplication – Booth’s Algorithm • Multiplication by bit shifting and addition. • Removes the need for multiply circuit • Requires: • A way to compute 2’s Complement • Available as fast hardware instructions • X86 assembly instruction: NEG • A way to compare two values for equality • How to do this quickly? Exclusive Not OR (NXOR) Gate Compare all sequential bits of bit string A and bit string B. Values are equal if the comparison process produces all 1s. • A way to shift bit strings. • Arithmetic bit shift, which preserves the sign bit when shifting to the right. 10110110arithmetic shift right 11011011 • x86 assembly instruction: SAR

  4. 2’s Complement Binary Multiplication – Booth’s Algorithm • Example: 5 x -3 • First, convert to 2s comp bin: • 5 = 0101 • -3 = 1101 • If we add 0 to the right of both values, there are 4 0-1 or 1-0 switches in 0101, and 3 in 1101. Pick 1101 as X value, and 0101 as Y value • Next, 2s Comp of Y: 1011 • for bin subtraction. • Next, set 2 registers, U and V, to 0. Make a table using U, V, and 2 additional registers X, and X-1.

  5. 2’s Complement Binary Multiplication – Booth’s Algorithm • Register X is set to the predetermined value of x, and X-1 is set to 0 • Rules: Look at the LSB of X and the number in the X-1 register. • If the LSB of X is 1, and X-1 is 0, we subtract Y from U. • If LSB of X is 0, and X-1 is 1, then we add Y to U. • If both LSB of X and X-1 are equal, do nothing and skip to shifting stage.

  6. 2’s Complement Binary Multiplication – Booth’s Algorithm • In our case, the LSB of X is one, and X-1 is zero, so we subtract Y from U. • Next, we do an arithmetic right shift on U and V • 1011  1101, 0000  1000 • Copy the LSB of X into X-1 • And then perform a circular right shift on X • 1101  1110 • Repeat the process three more times.

  7. 2’s Complement Binary Multiplication – Booth’s Algorithm • The LSB of X is zero, and X-1 is one, so we add Y to U. • Next, we do an arithmetic right shift on U and V • 0010 0001, 1000  0100 • Copy the LSB of X into X-1 • And then perform a circular right shift on X • 1110  0111 • Repeat the process two more times.

  8. 2’s Complement Binary Multiplication – Booth’s Algorithm • The LSB of X is one, and X-1 is zero, so we subtract Y from U. • Next, we do an arithmetic right shift on U and V • 1100 1110, 0100  0010 • Copy the LSB of X into X-1 • And then perform a circular right shift on X • 0111  1011 • Repeat the process one more time.

  9. 2’s Complement Binary Multiplication – Booth’s Algorithm • The LSB of X is one, and X-1 is one, begin shifts. • Next, we do an arithmetic right shift on U and V • 1110 1111, 0010  0001 • Copy the LSB of X into X-1 • And then perform a circular right shift on X • 1011  1101

  10. 2’s Complement Binary Multiplication – Booth’s Algorithm • The result is stored in U followed by V. • This result is stored in 2’s complement notation. • Convert to decimal: 11110001  00001111  -1510 • This gives the correct result of 3 x -5

  11. 2’s Complement Binary Multiplication – Booth’s Algorithm • Another Example: 7 x -4 • First, convert to 2s comp bin: • 7  0111, add zero to right gives 01110, 2 switches • -4  1100, add zero to right gives 11000, 1 switch • X = 1100 • Y = 0111 • -Y = 1001, for easy bin subtract

  12. 2’s Complement Binary Multiplication – Booth’s Algorithm U V X X-1 0: 0000 0000 1100 0 1: 0000 0000 0110 0 2: 0000 0000 0011 0 +1001 1001 3: 1100 1000 1001 1 4: 1110 0100 1100 1 • Result of 7 x -4: UV 11100100  00011100  -2810

  13. 2’s Complement Binary Multiplication – Booth’s Algorithm • Try: -9 x 7

  14. Numbers are stored at addresses • Memory is a place to store bits • A word is a fixed number of bits • Ex: 32 bits, or 4 bytes • An address is also a fixed number of bits • Represented as unsigned numbers

  15. Numbering Bits and Bytes • Need to choose order for: • Storage in physical memory system • Transmission over serial/parallel medium (data network) • Bit order • Handled by hardware • Usually hidden from programmer • Byte order • Affects multi-byte data items such as integers • Visible and important to programmers

  16. Possible Byte Orders • Least significant byte of integer in lowest memory location • Little endian • Most Significant byte of integer in lowest memory location. • Big endian

  17. Byte Order Illustration • Note: Difference is especially important when transferring data between computers for which the byte ordering differs.

  18. Sign Extension • Convert 2’s comp number using N bits to more than N bits (int to long int): • Replicate the MSB (sign bit) of the smaller number to fill new bits. • 2’s comp positive number has infinite 0s • 2’s comp negative number has infinite 1s • Ex: 16bit -410 to 32-bit: 1111 1111 1111 1100 1111 1111 1111 1111 1111 1111 1111 1100

  19. Conclusion • We represent “things” in computers as particular bit patterns: N bits  2N • Decimal for human calculations, binary for computers, hex for convenient way to write binary • 2’s comp universal in computing: so make sure to learn! • Number are infinite, computers are not, so errors can occur (overflow, underflow) • Know the powers of 2.

More Related