* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
1. Explain Memory Hierarchy INTRODUCTION Computer pioneers correctly predicted that programmers would want unlimited amounts of fast memory. An economical solution to that desire is a memory hierarchy, which takes advantage of locality and cost-performance of memory technologies. The principle of locality says that most programs do not access all code or data uniformly. Locality occurs in time (temporal locality) and in space (spatial locality). This principle, plus the guideline that smaller hardware can be made faster, led to hierarchies based on memories of different speeds and sizes. The goal is to provide a memory system with cost per byte almost as low as the cheapest level of memory and speed almost as fast as the fastest level. Note that each level maps addresses from a slower, larger memory to a smaller but faster memory higher in the hierarchy. As part of address mapping, the memory hierarchy is given the responsibility of address checking; hence, protection schemes for scrutinizing addresses are also part of the memory hierarchy.When a word is not found in the cache, the word must be fetched from the memory and placed in the cache before continuing. Multiple words, called a block (or line ), are moved for efficiency reasons. Each cache block includes a tag to see which memory address it corresponds to. A key design decision is where blocks (or lines) can be placed in a cache. The most popular scheme is set associative, where a set is a group of blocks in the cache. A block is first mapped onto a set, and then the block can be placed anywhere within that set. Finding a block consists of first mapping the block address to the set, and then searching the set—usually in parallel—to find the block. The set is chosen by the address of the data: (Block address) MOD (Number of sets in cache) If there are n blocks in a set, the cache placement is called n-way set associative. The end points of set associativity have their own names. A direct-mapped cache has just one block per set (so a block is always placed in the same location), and a fully associative cache has just one set (so a block can be placed anywhere). Caching data that is only read is easy, since the copy in the cache and memory will be identical. Caching writes is more difficult: how can the copy in the cache and memory be kept consistent? There are two main strategies. A writethrough cache updates the item in the cache and writes through to update main memory. A write-back cache only updates the copy in the cache. Miss rate is simply the fraction of cache accesses that result in a miss—that is, the number of accesses that miss divided by the number of accesses. To gain insights into the causes of high miss rates, which can inspire better cache designs, the three Cs model sorts all misses into three simple categories: Compulsory: The very first access to a block cannot be in the cache, so the block must be brought into the cache. Compulsory misses are those that occur even if you had an infinite cache. Capacity: If the cache cannot contain all the blocks needed during execution of a program, capacity misses (in addition to compulsory misses) will occur because of blocks being discarded and later retrieved. Conflict: If the block placement strategy is not fully associative, conflict misses (in addition to compulsory and capacity misses) will occur because a block may be discarded and later retrieved if conflicting blocks map to its set. Some designers prefer measuring misses per instruction rather than misses per memory reference (miss rate). These two are related: For speculative processors, we only count instructions that commit. The problem with both measures is that they don’t factor in the cost of a miss. where Hit time is the time to hit in the cache and Miss penalty is the time to replace the block from memory (that is, the cost of a miss). Average memory access time is still an indirect measure of performance; although it is a better measure than miss rate, it is not a substitute for execution time. LARGER BLOCK SIZE TO REDUCE MISS RATE The simplest way to reduce the miss rate is to take advantage of spatial locality and increase the block size. Note that larger blocks also reduce compulsory misses, but they also increase the miss penalty. BIGGER CACHES TO REDUCE MISS RATE The obvious way to reduce capacity misses is to increase cache capacity. Drawbacks include potentially longer hit time of the larger cache memory and higher cost and power. HIGHER ASSOCIATIVITY TO REDUCE MISS RATE Obviously, increasing associativity reduces conflict misses. Greater associativity can come at the cost of increased hit time. MULTILEVEL CACHES TO REDUCE MISS PENALTY A difficult decision is whether to make the cache hit time fast, to keep pace with the increasing clock rate of processors, or to make the cache large, to overcome the widening gap between the processor and main memory. Adding another level of cache between the original cache and memory simplifies the decision (see Below Figure). The first-level cache can be small enough to match a fast clock cycle time, yet the second-level cache can be large enough to capture many accesses that would go to main memory. GIVING PRIORITY TO READ MISSES OVER WRITES TO REDUCE MISS PENALTY A write buffer is a good place to implement this optimization. Write buffers create hazards because they hold the updated value of a location needed on a read miss—that is, a read-afterwrite hazard through memory. One solution is to check the contents of the write buffer on a read miss. If there are no conflicts, and if the memory system is available, sending the read before the writes reduces the miss penalty. Most processors give reads priority over writes. AVOIDING ADDRESS TRANSLATION DURING INDEXING OF THE CACHE TO REDUCE HIT TIME Caches must cope with the translation of a virtual address from the processor to a physical address to access memory. Below Figure shows a typical relationship between aches, translation lookaside buffers (TLBs), and virtual memory. A common optimization is to use the page offset—the part that is identical in both virtual and physical addresses—to index the cache. The virtual part of the address is translated while the cache is read using that index, so the tag match can use physical addresses. This scheme allows the cache read to begin immediately, and yet the tag comparison still uses physical addresses. The drawback of this virtually indexed, physically tagged optimization is that the size of the page limits the size of the cache. For example, a direct-mapped cache can be no bigger than the page size. Higher associativity can keep the cache index in the physical part of the address and yet still support a cache larger than a page. For example, doubling associativity while doubling the cache size maintains the size of the index, since it is controlled by this formula: A seemingly obvious alternative is to just use virtual addresses to access the cache, but this can cause extra overhead in the operating system. Note that each of these six optimizations above has a potential disadvantage that can lead to increased, rather than decreased, average memory access time. SPEED, SIZE AND COST An ideal memory would be fast, large and inexpensive. It is that a very fast memory can be implemented if SRAM chips are used. But these chips are expensive because their basic cells have six transistors and a large number of basic cells are required to build a single chip. So it is impractical to build a large memory using SRAM chips. The alternative is to use DRAM chips, which have simpler basic cells and thus, they are less expensive. But such memories are significantly slower. Although dynamic memory units can be implemented at a reasonable cost with the capacity of hundreds of megabytes, still the affordable size is small compared to the large voluminous data. This leads to the solution of secondary storage, mainly magnetic disks, to implement large memory spaces. Very large disks are available at a reasonable price, and they are used extensively in computer systems, but they are much slower than the semiconductor memory units. So we conclude the following: A huge amount of cost-effective storage can be provided by magnetic disks. A large, yet affordable, main memory can be built with dynamic RAM technology. A smaller unit is the SRAM, where speed is more such as in cache memories. All of these different types of memory units are employed effectively in a computer. The entire computer memory can be viewed as a hierarchy, shown in fig. The access is faster in processor registers and they are at the top in memory hierarchy. The next level of the hierarchy is 'a relatively small amount of memory that can be implemented directly on the processor chip. This memory is called a processor cache, holds copies of instructions and data from the larger memory. Cache is classified into two levels. A primary cache is located on the processor chip and it is small because it competes for space, which must implement many other functions. CPU Increased speed Register 1 Cache Increased cost per bit 2 Cache L2 Main memory Magnetic 2 memory Fig:Memory hierarchy The primary cache is referred to as level l (Ll) cache. A larger, secondary cache is placed between the primary cache and the rest of the memory. It is refel Ted to as level 2 (L2) cache. It is usually implemented using SRAM chips. The most common way of designing computers is to include a primary cache on the processor chip and a larger secondary cache. The next level in the hierarchy is called the main memory. This rather large memory in implemented using dynamic memory components, typically in the form of SIMMs, DIMMs or RlMMs. The main memory is much larger but significantly slower than the cache memory.Disk devices provide a huge amount of inexpensive storage. They are very slow compared to the semiconductor devices. 2. Write a Short notes on Memory Technology • Performance metrics – Latency: two measures • Access time: The time between when a read is requested and when the desired word arrives. • – Cycle time: The minimum time between requests to memory. Usually cycle time > access time DRAM Refresh time < 5%; slow increase in speed SRAM, ROM and Flash Technology • SRAM – No refresh – 8 to 16 times faster than DRAM • – 8 to 16 times more expensive than DRAM – Suitable for embedded applications ROM and flash – Non-volatile – Best suit the embedded processors Improving Memory Performance in a Standard DRAM Chip • Use of multi-bank organization provides larger bandwidth • Other three methods to increase bandwidth – Fast page mode • – Repeated accesses to a row without another row access time. Synchronous DRAM • Have a programmable register to hold the number of bytes requested and hence can send many bytes over several cycles per request with the overhead of synchronizing the controller. – Double Data Rate (DDR) DRAM • Use falling and rising edges of the clock for transfering data. RAMBUS DRAM (RDARM) • Each chip has interleaved memory and a high-speed interface and acts more like a memory system. • RDARM: First generation RAMBUS DRAM – Drop RAS/CAS, replacing it with a bus that allows other accesses over the bus between the sending of the address and return of the data (called packet-switched bus or split-transaction bus). • – Use double edges of the clock. – Runs at 300MHZ. Direct RDRAM (DRDRAM): Second generation – Separate data, row, column buses such that three transactions on these buses can be performed simultaneously. – • Runs at 400 MHZ. Comparing RAMBUS and DDRSDRAM – Both increase memory bandwidth. – None help in reducing latency. 3. Explain Cache Memories. The effectiveness of cache mechanism is based on the property of ‘Locality of reference’. Locality of Reference: time period and remainder of the program is accessed relatively infrequently. Temporal(The recently executed instruction are likely to be executed again very soon.) Spatial(The instructions in close proximity to recently executed instruction are also likely to be executed soon.) If the active segment of the program is placed in cache memory, then the total execution time can be reduced significantly. 1. The term Block refers to the set of contiguous address locations of some size. 2. The cache line is used to refer to the cache block. The Cache memory stores a reasonable number of blocks at a given time but this number is small compared to the total number of blocks available in Main Memory. 1. The correspondence between main memory block and the block in cache memory is specified by a mapping function. 2. The Cache control hardware decide that which block should be removed to create space for the new block that contains the referenced word. 3. The collection of rule for making this decision is called the replacement algorithm. 4. The cache control circuit determines whether the requested word currently exists in the cache. 5. If it exists, then Read/Write operation will take place on appropriate cache location. In this case Read/Write hit will occur. 6 .In a Read operation, the memory will not involve. 7. The write operation is proceed in 2 ways.They are, a) Write-through protocol b) Write-back protocol 4. Short notes for Mapping Function: 1.Direct Mapping: is the simplest technique in which block j of the main memory maps onto block ‘j’ modulo 128 of the cache. block 0. k 1 and so on. block. Merit: It is easy to implement. Demerit: It is not very flexible. 2.Associative Mapping: 1. 12 tag bits will identify a memory block when it is resolved in the cache. 2. The tag bits of an address received from the processor are compared to the tag bits of each block of the cache to see if the desired block is persent.This is called associative mapping. 3. It gives complete freedom in choosing the cache location. 4. A new block that has to be brought into the cache has to replace(eject)an existing block if the cache is full. 5. In this method,the memory has to determine whether a given block is in the cache. 6. A search of this kind is called an associative Search. Merit: It is more flexible than direct mapping technique. Demerit: Its cost is high. 3.Set-Associative Mapping: 1.It is the combination of direct and associative mapping. 2. The blocks of the cache are grouped into sets and the mapping allows a block of the main memory to reside in any block of the specified set. 3. In this case,the cache has two blocks per set,so the memory blocks 0,64,128……..4032 maps into cache set ‘0’ and they can occupy either of the two block position within the set. the tags of the two blocks of the set to clock if the desired block is present. 7. The cache which contains 1 block per set is called direct Mapping. 8. A cache that has ‘k’ blocks per set is called as ‘k-way set associative cache’. 9. Each block contains a control bit called a valid bit. 10. The Valid bit indicates that whether the block contains valid data. 11. The dirty bit indicates that whether the block has been modified during its cache residency. initially applied to system a) If the main memory block is updated by a source & if the block in the source is already exists in the cache,then the valid bit will be cleared to ‘0’. b) If Processor & DMA uses the same copies of data then it is called as the Cache Coherence Problem. Merit: 1.The Contention problem of direct mapping is solved by having few choices for block placement. 2. The hardware cost is decreased by reducing the size of associative search. 5. Explain Cache memory with its performance CACHE PERFORMANCE • The average memory access time formula above gives us three metrics for cache • Reducing the hit time: small and simple caches, way prediction, and trace caches • Increasing cache bandwidth: pipelined caches, multibanked caches, and nonblocking caches • Reducing the miss penalty: critical word first and merging write buffers • Reducing the miss rate: compiler optimizations • Reducing the miss penalty or miss rate via parallelism: hardware prefetching and compiler prefetching “Measuring and improving cache performance” SMALL AND SIMPLE CACHES TO REDUCE HIT TIME • A time-consuming portion of a cache hit is using the index portion of the address to read the tag memory and then compare it to the address. Smaller hardware can be faster, so a small cache can help the hit time. • It is also critical to keep an L2 cache small enough to fit on the same chip as the processor to avoid the time penalty of going off chip. • The second suggestion is to keep the cache simple, such as using direct mapping. One benefit of direct-mapped caches is that the designer can overlap the tag check with the transmission of the data. This effectively reduces hit time. • Hence, the pressure of a fast clock cycle encourages small and simple cache designs for firstlevel caches. For lower-level caches, some designs strike a compromise by keeping the tags on chip and the data off chip, promising a fast tag check, yet providing the greater capacity of separate memory chips. • Although the amount of on-chip cache increased with new generations of microprocessors, the size of the L1 caches has recently not increased between generations. • One approach to determining the impact on hit time in advance of building a chip is to use CAD tools. CACTI is a program to estimate the access time of alternative cache structures on CMOS microprocessors within 10% of more detailed CAD tools. For a given minimum feature size, it estimates the hit time of caches as you vary cache size, associativity, and number of read/write ports. Example • Assume that the hit time of a two-way set-associative first-level data cache is 1.1 times faster than a four-way set-associative cache of the same size. The miss rate falls from 0.049 to 0.044 for an 8 KB data cache. Assume a hit is 1 clock cycle and that the cache is the critical path for the clock. Assume the miss penalty is 10 clock cycles to the L2 cache for the two-way set-associative cache, and that the L2 cache does not miss. Which has the faster average memory access time? Answer • For the two-way cache: • For the four-way cache, the clock time is 1.1 times longer. The elapsed time of the miss penalty should be the same since it’s not affected by the processor clock rate, so assume it takes 9 of the longer clock cycles: • If it really stretched the clock cycle time by a factor of 1.1, the performance impact would be even worse than indicated by the average memory access time, as the clock would be slower even when the processor is not accessing the cache. • Another approach reduces conflict misses and yet maintains the hit speed of direct-mapped cache. In way prediction, extra bits are kept in the cache to predict the way, or block within the set of the next cache access. • This prediction means the multiplexor is set early to select the desired block, and only a single tag comparison is performed that clock cycle in parallel with reading the cache data. • A miss results in checking the other blocks for matches in the next clock cycle. Added to each block of a cache are block predictor bits. The bits select which of the blocks to try on the next cache access. • If the predictor is correct, the cache access latency is the fast hit time. If not, it tries the other block, changes the way predictor, and has a latency of one extra clock cycle. • Simulations suggested set prediction accuracy is in excess of 85% for a two-way set, so way prediction saves pipeline stages more than 85% of the time. Way prediction is a good match to speculative processors, since they must already undo actions when speculation is unsuccessful. The Pentium 4 uses way prediction. 6. Explain Virtual Memory VM divides physical memory into blocks and allocates them to different processes, each of which has its own address space. • Need a protection scheme that restricts a process to the blocks belonging only to that process. • With VM, not all code and data are needed to be in physical memory before a program can begin. • VM provides process (program) relocation. • Virtual address – • Physical address – • Given by CPU For having an access to main memory Address translation – Convert a virtual address to a physical address. – Can easily form the critical path that limits the clock cycle time Types of virtual machine Paged Segmented Paged segment Protection and Examples of VM • Process – • Process (context) switch – • A running program plus any state needed to continue running it. One process is stop execution and another process is brought into execution. Requirements for context switches – Be able to save CPU states for continue execution • – Protect a process from been interfered by another process • • A computer designer’s responsibility OS’s responsibility Computer designers can make protection easily implemented by the OS via VM design. 7. Explain about TLB Translation-Lookaside Buffer (TLB) A cache that keeps track of recently used address mappings to avoid an access to the page table. Page table resides in memory –Each translation requires accessing memory –Might be required for each load/store! TLB –Cache recently used PTEs –speed up translation –typically 128 to 256 entries –usually 4 to 8 way associative –TLB access time is comparable to L1 cache Typically more than once ■ TLB size: 16–512 entries ■ Block size: 1–2 page table entries (typically 4–8 bytes each) ■ Hit time: 0.5–1 clock cycle ■ Miss penalty: 10–100 clock cycles ■ Miss rate: 0.01%–1% 7. Discuss about Accessing I/O Devices 1.Interface to CPU and Memory 2.Interface to one or more peripherals I/O systems focus on dependability and cost Processors and Memory focus on performance and cost. I/O systems must also plan for expandability and for diversity of devices, which is not a concern for processors Characteristics: Behaviour: Input (read once), output (write only, cannot be read), or storage (can be reread and usually rewritten). Partner: Either a human or a machine is at the other end of the I/O device, either feeding data on input or reading data on output. Data rate: The peak rate at which data can be transferred between the I/O device & the main memory or processor Interface for an IO Device: CPU checks I/O module device status •I/O module returns status •If ready, CPU requests data transfer •I/O module gets data from device •I/O module transfers data to CPU 8. Explain in detail about Direct Memory Access • • • • • • A special control unit may be provided to allow the transfer of large block of data at high speed directly between the external device and main memory , without continous intervention by the processor. This approach is called DMA. DMA transfers are performed by a control circuit called the DMA Controller. To initiate the transfer of a block of words , the processor sends, Ø Starting address Ø Number of words in the block Ø Direction of transfer. When a block of data is transferred , the DMA controller increment the memory address for successive words and keep track of number of words and it also informs the processor by raising an interrupt signal. While DMA control is taking place, the program requested the transfer cannot continue and the processor can be used to execute another program. After DMA transfer is completed, the processor returns to the program that requested the transfer. R/W à Determines the direction of transfer . When R/W =1, DMA controller read data from memory to I/O device. R/W =0, DMA controller perform write operation. Done Flag=1, the controller has completed transferring a block of data and is ready to receive another command. IE=1, it causes the controller to raise an interrupt (interrupt Enabled) after it has completed transferring the block of data. IRQ=1, it indicates that the controller has requested an interrupt. Fig: Use of DMA controllers in a computer system • • • A DMA controller connects a high speed network to the computer bus . The disk controller two disks, also has DMA capability and it provides two DMA channels. To start a DMA transfer of a block of data from main memory to one of the disks, the program write s the address and the word count inf. Into the registers of the corresponding channel of the disk controller. When DMA transfer is completed, it will be recorded in status and control registers of the DMA channel (ie) Done bit=IRQ=IE=1. Cycle Stealing: • • • • Requests by DMA devices for using the bus are having higher priority than processor requests . Top priority is given to high speed peripherals such as , Ø Disk Ø High speed Network Interface and Graphics display device. Since the processor originates most memory access cycles, the DMA controller can be said to steal the memory cycles from the processor. This interviewing technique is called Cycle stealing. Burst Mode: The DMA controller may be given exclusive access to the main memory to transfer a block of data without interruption. This is known as Burst/Block Mode Bus Master: The device that is allowed to initiate data transfers on the bus at any given time is called the bus master. Bus Arbitration: It is the process by which the next device to become the bus master is selected and the bus mastership is transferred to it. Types: There are 2 approaches to bus arbitration. They are, Ø Centralized arbitration ( A single bus arbiter performs arbitration) Ø Distributed arbitration (all devices participate in the selection of next bus master). Centralized Arbitration: • • • • • • Here the processor is the bus master and it may grants bus mastership to one of its DMA controller. A DMA controller indicates that it needs to become the bus master by activating the Bus Request line (BR) which is an open drain line. The signal on BR is the logical OR of the bus request from all devices connected to it. When BR is activated the processor activates the Bus Grant Signal (BGI) and indicated the DMA controller that they may use the bus when it becomes free. This signal is connected to all devices using a daisy chain arrangement. If DMA requests the bus, it blocks the propagation of Grant Signal to other devices and it indicates to all devices that it is using the bus by activating open collector line, Bus Busy (BBSY). Fig:A simple arrangement for bus arbitration using a daisy chain Fig: Sequence of signals during transfer of bus mastership for the devices • • • • The timing diagram shows the sequence of events for the devices connected to the processor is shown. DMA controller 2 requests and acquires bus mastership and later releases the bus. During its tenture as bus master, it may perform one or more data transfer. After it releases the bus, the processor resources bus mastership Distributed Arbitration: It means that all devices waiting to use the bus have equal responsibility in carrying out the arbitration process. Fig:A distributed arbitration scheme • • Each device on the bus is assigned a 4 bit id. When one or more devices request the bus, they assert the Start-Arbitration signal & place their 4 bit ID number on four open collector lines, ARB0 to ARB3. • A winner is selected as a result of the interaction among the signals transmitted over these lines. • The net outcome is that the code on the four lines represents the request that has the highest ID number. • The drivers are of open collector type. Hence, if the i/p to one driver is equal to 1, the i/p to another driver connected to the same bus line is equal to ‘0’(ie. bus the is in low-voltage state). Eg: • • • • • Assume two devices A & B have their ID 5 (0101), 6(0110) and their code is 0111. Each devices compares the pattern on the arbitration line to its own ID starting from MSB. If it detects a difference at any bit position, it disables the drivers at that bit position. It does this by placing ‘0’ at the i/p of these drivers. In our eg. ‘A’ detects a difference in line ARB1, hence it disables the drivers on lines ARB1 & ARB0. This causes the pattern on the arbitration line to change to 0110 which means that ‘B’ has won the contention. 9. Short Notes on Buses 1.A bus protocol is the set of rules that govern the behavior of various devices connected to the bus ie, when to place information in the bus, assert control signals etc. 2. The bus lines used for transferring data is grouped into 3 types. They are, Control signals It also carries timing infn/. (ie) they specify the time at which the processor & I/O devices place the data on the bus & receive the data from the bus. 1. During data transfer operation, one device plays the role of a ‘Master’. 2. Master device initiates the data transfer by issuing read / write command on the bus. Hence it is also called as ‘Initiator’. 3. The device addressed by the master is called as Slave / Target. Types of Buses: There are 2 types of buses. They are, Synchronous Bus:1.In synchronous bus, all devices derive timing information from a common clock line. 2. Equally spaced pulses on this line define equal time. bus cycle’, one data transfer on take place. 1. The ‘crossing points’ indicate the tone at which the patterns change. 2. A ‘signal line’ in an indeterminate / high impedance state is represented by an intermediate half way between the low to high signal levels. Asynchronous Bus:- An alternate scheme for controlling data transfer on. The bus is based on the use of ‘handshake’ between Master & the Slave. The common clock is replaced by two timing control lines. – 10 . Explain briefly about Interrupts 1).When a program enters a wait loop, it will repeatedly check the device status. During this period, the processor will not perform any function. 2). The Interrupt request line will send a hardware signal called the interrupt signal to the processor. 3). On receiving this signal, the processor will perform the useful function during the waiting period. 4). The routine executed in response to an interrupt request is called Interrupt Service Routine. 5). The interrupt resembles the subroutine calls. 6.The processor first completes the execution of instruction i Then it loads the PC(Program Counter) with the address of the first instruction of the ISR. 7. After the execution of ISR, the processor has to come back to instruction i + 1. 8. Therefore, when an interrupt occurs, the current contents of PC which point to i +1 is put in temporary storage in a known location. 9. A return from interrupt instruction at the end of ISR reloads the PC from that temporary storage location, causing the execution to resume at instruction i+1. 10. When the processor is handling the interrupts, it must inform the device that its request has been recognized so that it remove its interrupt requests signal. 11. This may be accomplished by a special control signal called the interrupt acknowledge signal. 12. The task of saving and restoring the information can be done automatically by the processor. 13. The processor saves only the contents of program counter & status register (ie) it saves only the minimal amount of information to maintain the integrity of the program execution. 14.Saving registers also increases the delay between the time an interrupt request is received and the start of the execution of the ISR. This delay is called the Interrupt Latency. the long interrupt latency in unacceptable. processing of certain routines must be accurately timed relative to external events. This application is also called as real-time processing. Interrupt Hardware: 1.A single interrupt request line may be used to serve ‘n’ devices. All devices are connected to the line via switches to ground. 2. To request an interrupt, a device closes its associated switch, the voltage on INTR line drops to 0(zero). 3. If all the interrupt request signals (INTR1 to INTRn) are inactive, all switches are open and the voltage on INTR line is equal to Vdd. 4. When a device requests an interrupts, the value of INTR is the logical OR of the requests from individual devices. Enabling and Disabling Interrupts: 1.The arrival of an interrupt request from an external device causes the processor to suspend the execution of one program & start the execution of another because the interrupt may alter the sequence of events to be executed. INTR is active during the execution of Interrupt Service Routine. There are 3 mechanisms to solve the problem of infinite loop which occurs due to successive interruptions of active INTR signals. The following are the typical scenario. The device raises an interrupt request. The processor interrupts the program currently being executed. device is informed that its request has been recognized & in response, it deactivates the INTR signal. The actions are enabled & execution of the interrupted program is resumed. Edge-triggered: The processor has a special interrupt request line for which the interrupt handling circuit responds only to the leading edge of the signal. Such a line said to be edge-triggered. Handling Multiple Devices: When several devices requests interrupt at the same time, it raises some questions. They are. How can the processor recognize the device requesting an interrupt? Given that the different devices are likely to require different ISR, how can the processor obtain the starting address of the appropriate routines in each case? Should a device be allowed to interrupt the processor while another interrupt is being serviced? How should two or more simultaneous interrupt requests be handled? Polling Scheme: If two devices have activated the interrupt request line, the ISR for the selected device (first device) will be completed & then the second request can be serviced. The simplest way to identify the interrupting device is to have the ISR polls all the encountered -> when a device raises an interrupt requests, the status register IRQ is set to 1. Merit: It is easy to implement. Demerit: The time spent for interrogating the IRQ bits of all the devices that may not be requesting any service. Vectored Interrupt: Here the device requesting an interrupt may identify itself to the processor by sending a special code over the bus & t ing address to ISR. The processor reads this address, called the interrupt vector & loads into PC. The interrupt vector also includes a new value for the Processor Status Register. When the processor is ready to receive the interrupt vector code, it activate the interrupt acknowledge (INTA) line. Interrupt Nesting: Multiple Priority Scheme: In multiple level priority scheme, we assign a priority level to the processor that can be changed under program control. The priority level of the processor is the priority of the program that is currently being executed. The processor accepts interrupts only from devices that have priorities higher than its own. At the time the execution of an ISR for some device is started, the priority of the processor is raised to that of the device. The action disables interrupts from devices at the same level of priority or lower. Privileged Instruction: The processor priority is usually encoded in a few bits of the Processor Status word. It can also be changed by program instruction & then it is write into PS. These instructions are called privileged instruction. This can be executed only when the processor is in supervisor mode. supervisor mode only when executing OS routines. It switches to the user mode before beginning to execute application program. Initiating the Interrupt Process: Load the starting address of ISR in location INTVEC (vectored interrupt). Load the address LINE in a memory location PNTR. The ISR will use this location as a pointer to store the i/p characters in the memory. Enable the keyboard interrupts by setting bit 2 in register CONTROL to 1. Enable interrupts in the processor by setting to 1, the IE bit in the processor status register PS. Exception of ISR: cause the interface circuits to remove its interrupt requests. end of lin interrupt. Exceptions: 1. An interrupt is an event that causes the execution of one program to be suspended and the execution of another program to begin. 2. The Exception is used to refer to any event that causes an interruption. Kinds of exception: Recovery from errors Debugging Privileged Exception Recovery From Errors: .1Computers have error-checking code in Main Memory , which allows detection of errors in the stored data. 2. If an error occurs, the control hardware detects it informs the processor by raising an interrupt. 3. The processor also interrupts the program, if it detects an error or an unusual condition while executing the instance (ie) it suspends the program being executed and starts an execution service routine. 4. This routine takes appropriate action to recover from the error. Debugging: 1. System software has a program called debugger, which helps to find errors in a program. 2. The debugger uses exceptions to provide two important facilities 3. They are Trace Breakpoint Trace Mode: 1. When processor is in trace mode , an exception occurs after execution of every instance using the debugging program as the exception service routine. 2. The debugging program examine the contents of registers, memory location etc. 3. On return from the debugging program the next instance in the program being debugged is executed 4. The trace exception is disabled during the execution of the debugging program. Break point: 1. Here the program being debugged is interrupted only at specific points selected by the user. An instance called the Trap (or) software interrupt is usually provided for this purpose. 2. While debugging the user may interrupt the program execution after instance ‘I’ 3. When the program is executed and reaches that point it examine the memory and register contents. Privileged Exception: 1. To protect the OS of a computer from being corrupted by user program certain instance can be executed only when the processor is in supervisor mode. These are called privileged exceptions. 2. When the processor is in user mode, it will not execute instance (ie) when the processor is in supervisor mode , it will execute instance. 11. Explain I/O Processor A specialized processor, not only loads and stores into memory but also can execute instructions, which are among a set of I/O instructions • The IOP interfaces to the system and devices • The sequence of events involved in I/O transfers to move or operate the results of an I/O operation into the main memory (using a program for IOP, which is also in main memory)Schaum’s Outline of Theory and Problems of Computer Architecture I/O processor: • Used to address the problem of direct transfer after executing the necessary format conversion or other instructions • In an IOP-based system, I/O devices can directly access the memory without intervention by the processor IOP instructions • Instructions help in format conversionsbyte from memory as packed decimals to the output device for line-printer • The I/O device data in different format can be transferred to main memory using an IOP 12. Explain I/O interfacing techniques a. Memory mapped I/O b. I/O mapped I/O Memory mapped I/O The total memory address space is partitioned and part of this space is devoted to I/O addressing When this technique is used, a memory reference instruction that causes data to be fetched from or stored at address specified, automatically becomes an I/O instruction if that address is made the address of an I/O port. Memory Address space I/O address space Total address space Advantages The usual memory related instruction are used for I/O related operations. The special I/O instructions are not required. Disadvantages The memory address space is reduced. I/O mapped I/O Memory Total address space Address space I/O address I/O address space space We do not want to reduce the memory address space, we allot a different I/O address space, apart from total memory space which is called I/O mapped I/O technique. Advantage The advantage is that the full memory address space is available. Disadvantage The memory related instruction do not work. Therefore, processor can only use this mode if it has special instructions for I/O related operations such as I/O read, I/O wrire.