Computer organization and embedded systems / Carl Hamacher. His current research interests include computer architecture and field-. Carl Hamacher received his billpercompzulbe.ml degree in engineering physics from the His research interests are in the areas of computer architecture, reliability of digital. Text Book Computer Organization by Carl Hamacher 5th Edition. Pages· · MB·2, Computer organisation and architecture(Carl Hamacher) .
|Language:||English, Spanish, German|
|Distribution:||Free* [*Registration needed]|
Computer Organization and Embedded Systems Carl Hamacher Zvonko interests include computer architecture and field-programmable VLSI technology. Home» Carl Hamacher» Computer Organisation» DOWNLOAD» edition» Fifth » FREE» PDF» Safwat Zaky» Zvonko Vranesic» Computer. Hamacher - Computer Organization (5th Ed) - Free ebook download as PDF File .pdf) or read book online Computer System Architecture by Morris Mano Third Edition 5e V. Carl Hamacher, Zvonko G. Vranesic, Safwat G. Zaky-Computer.
Actions Shares. Embeds 0 No embeds. No notes for slide. Chapter 1 Basic Structure of Computers 1. Overlapped time is composed as: The OS routines needed to coordinate multiple unit activity cannot be fully overlapped with other activity because they use the processor. Equating execution times and clock rates, we have 1. Chapter 2 Machine Instructions and Programs 2. The three binary representations are given as: No; any binary pattern can be interpreted as a number or as an instruction.
Byte shown as XX is unchanged. See Section 2. See section 2. Clear the high-order 4 bits of each byte to A program for the expression is: Memory word location J contains the number of tests, j, and memory word location N contains the number of students, n.
The Base with index addressing mode R1,R2 is used to access the scores on a particular test. Register R1 points to the test score for student 1, and R2 is incremented by Stride in the inner loop to access scores on the same test by successive students in the list. Move J,R10 Initialize outer loop counter R10 to j. Clear R2 Clear index register R2 to zero.
Clear R0 Clear sum register R0 to zero. Add 4,R1 Increment base register to next test score for student 1. The dot product program in Figure 2. Suppose that R1 and R2 are retained as pointers to the A and B vectors. Linked list version of the student test scores program: Assume that the subroutine can change the contents of any register used to pass parameters. Multiply 4,R4 Use R4 to contain distance in bytes Stride between successive elements in a column. Return Return to calling program.
The Move instruction places into memory word location when the instruction is executed as part of a program. That is, the next item must be entered at the beginning of the memory region, assuming that location is empty.
The IN pointer points to the location where the next byte will be appended to the queue. If the queue is not full with k bytes, this location is empty, as shown in the diagram. The OUT pointer points to the location containing the next byte to be removed from the queue. If the queue is not empty, this location contains a valid byte, as shown in the diagram. But the IN pointer must also be pointing to location 1, because following the wraparound rule it must point to the location where the next byte will be appended.
Thus, in both cases, both pointers point to location 1; but in one case the queue is empty, and in the other case it is full. Restore contents of IN to contents of LOC and indicate failed append operation, that is, indicate that the queue was full. Otherwise, store new item at LOC. Remove operation: Indicate failed remove operation, that is, indicate that the queue was empty. Use the following register assignment: Compare R1,R2 Check if queue is empty.
Recursion is not supported. The Return instruction pops this value into the program counter.
This supports recursion, that is, when the subroutine calls itself. Assume that register SP is used as the stack pointer and that the stack grows toward lower addresses. Also assume that the memory is byte- addressable and that all stack entries are 4-byte words.
Initially, the stack is empty.
If the ID of the new record matches the ID of the Head record of the current list, the new record will be inserted as the new Head. If the ID of the new record matches the ID of a later record in the current list, the new record will be inserted immediately after that record, including the case where the matching record is the Tail record.
In this latter case, the new record becomes the new Tail record.
Modify Figure 2. If the list is not empty, the following happens. Replace Figure 2. ARM 3. The stack pointer R1 is returned to its original value of These two numbers are then added and the sum is placed in register R4. Note that it cannot be generated by the rotation of any 8-bit value.
The following two instructions perform the desired operation: Use register R0 as a counter register and R1 as a work register. Program trace: Assume bytes are unsigned 8-bit values. The inner loop checks for a match at each possible position. R0 and exit. To change to uppercase, we need to change bit b5 from 1 to 0.
The Post-indexed addressing mode [R2],R3,LSL 2 is used to access the successive scores on a particular test in the inner loop. Therefore, register R2 is incremented by the Stride parameter on each pass through the inner loop. Assume that the subroutine can change the contents of any registers used to pass parameters. STR R5,[R13, 4]!
Save [R5] on stack. This program is similar to Figure 3. Assume that most of the time between successive characters being struck is spent in the three-instruction wait loop that starts at location READ. The stack frame structure shown in Figure 3. It echoes the characters back to a display as well as reading them into memory. The stack frame format used is like Figure 3. A possible main program is: MOV R5, 3 Same code as. See the solution to Problem 2. Register assignment: The record pointer is register R0, and registers R1, R2, and R3, are used to accumulate the three sums, as in Figure 2.
Assume that the list is not empty. If the ID matches that of a later record, it will be inserted immediately after that record, including the case where the matching record is the Tail. Modify Figure 3. If the list is empty, the result is unpredictable because the second instruc- tion compares the new ID with the contents of memory location zero. Replace Figure 3. One memory access is needed to fetch the instruction and 4 to execute it.
L 9,D2 The number of bits shifted must be less than 8. B The destination operand must be a data register.
Also the source operand is outside the range of signed values that can be represented in 8 bits. W 83 5 5 0 after 2nd ADD. W 4 5 0 after 3rd ADD. W 3 5 0 after 4th ADD. W 34 2 5 0 after 5th ADD. W 1 5 0 after last MOVE. We have assumed that the assembler uses short absolute addresses. L, etc. Otherwise, 3 more words would be needed.
Program 2 destroys the original list. A program for string matching: Therefore, the largest value of n that this program can handle is 14, because the largest number that can be stored in a byte is Assume that most of the time between successive characters being struck is spent in the two-instruction wait loop that starts at location READ.
Assume that register A4 is used as a memory pointer by the main program. B CR,D0 Check for end-of-line character. W 3, A0 Wait for character. B A1 ,D0 Load character into D0. RTS Return. W 3, A2 Wait for display. B D0, A3 Send character to display. A stack structure like that shown in Figure 3. The main program uses register A0 as a memory pointer, and uses register D0 to hold the character read. L 16 A7 ,D0 Load long word containing character into D0.
B D0, A1 Send character to display. L 1,A1 Increment A1 Modulo k. L A1,A2 Check if queue is full. B D0,[A5] Append byte. L A1,A2 Check if queue is empty. Using the same assumptions as in Problem 3. A program to reverse the order of bits in register D2: The trace table is: Assume the list address is passed to the subroutine in register A1.
When the subroutine is entered, the number of list entries needs to be loaded into D1. Because addresses must be incremented or decremented by 2 to handle word quantities, the address mode A1,D1 is no longer useful. Also, since the initial address points to the beginning of the list, we will scan the list forwards.
Use D4 to keep track of the position of the largest element in the inner loop and D5 to record its value. We will use registers D1, D2, and D3 to accumulate the three sums. Assume also that the list is not empty. Hence, the BNE instruction will test the correct values.
In the program of Figure 3. Modify the program as follows.
If the ID of the new record is less than that of the head, the program in Figure 3. If the list is not empty, the program continues until A2 points to the Tail record. To correct behavior, modify the program as follows. Intel IA 3. Initial memory contents are: Only one operand can be in memory. Scale factor can only be 1, 2, 4, or 8. An immediate operand can not be a destination. ESP cannot be used as an index register. To change characters from lowercase to uppercase, change bit b5 from 1 to 0.
Append routine: Remove routine: Chapter I provides an overview of computer hardware and software and informally introduces terms that are dealt with in more depth in the remainder of the book. This chapter discusses the basic functional units and the ways they are interconnected to form a complete computer system. The role of system software is introduced and basic aspects of performance evaluation are discussed. A brief treatment of the history of computer development is also provided.
Chapter 2 gives a methodical treatment of machine instructions, addressing techniques, and instruction sequencing. Basic aspects of 2's-complement arithmetic are introduced to facilitate the discussion of the generation of effective addresses. Program examples at the machine instruction level, expressed in a generic assembly language, are used to discuss loops, subroutines.
Chapter 3 illustrates implementation of the concepts introduced in Chapter 2 on three commercial proceapti! The material is organized into three independent and complete parts.
Each part includes all of the examples from Chapter 2 implemented in the context of the specific processor. It is sufficient to cover only one of the three parts to provide the continuity needed to follow the rest of the book. If laboratory experiments using one of the three processors are associated with the course, the relevant part of Chapter 3 can be covered in parallel with Chapter 2. Input-output organization is developed in Chapter 4.
Interrupts and direct-memory access methods are described in detail, including a discussion of the role of software interrupts in operating systems.
Caches and multiple-module memory systems are explained as ways for increasing main memory bandwidth. Caches are discussed in some detail, including perfonnance modeling. Vutual-memory systems, memory management, and rapid address translation techniques are also presented.
Magnetic and optical disks are discussed as components in the memory hierarchy. Chapter 6 treats the arithmetic unit of a computer. Logic design for fixed-point add, subtract, multiply, and divide hardware, operating on 2's-complement numbers, is described. Lookahead adders and high-speed multipliers are explained, including descriptions of the Booth multiplier recoding and carry-save addition techniques.
Floatingpoint number representation and operations, in the context of the IEEE Standard, are presented. Chapter 7 begins with a register-transfer-level treatment of the implementation of instruction fetching and execution in a processor.
This is followed by a discussion of processor implementation by both hardwired and microprogrammed control. PREFACE Chapter 8 provides a detailed coverage of the use of pipelining and multiple function units in the design ofhigh-perfonnance processors. The role of the compiler and the relationship between pipelined execution and instruction set design are explored.