CSA Prelims to Finals Handout PDF

Summary

This document is a handout on computer architecture basics, covering computer systems, elements of a computer system (hardware, software, data), and computer operations. It also touches on abstraction, computer hierarchy, decomposition, and Moore's Law. Examples of computer systems, like microcomputers, minicomputers, and mainframes, are discussed.

Full Transcript

IT1910 Architecture Basics COMPUTER SYSTEM A computer is a device that can compute for the desired information through entering information. A system, on the other hand, can be defined as many elements working as one. It is a working procedure or methods to which a process is formed. A computer sys...

IT1910 Architecture Basics COMPUTER SYSTEM A computer is a device that can compute for the desired information through entering information. A system, on the other hand, can be defined as many elements working as one. It is a working procedure or methods to which a process is formed. A computer system, therefore, is a system that comprises elements that process raw data and instruction. Elements of a Computer System  Data – It is the fundamental representation of facts and observations. It is processed by a computer system to provide information, which is the very reason for the computer’s existence. It can also take on a number of different forms: numbers, text, images, and sounds. However, it’s all numbers on the computer.  Software – It consists of system and application programs that define the instructions executed by the hardware. It has an application programming interface (API) that acts as an interface for application programs and utilities to access the internal services provided by the operating system. It also has a kernel that contains the most important operating system processing functions. Here are some examples of software: System software – Operating system (Windows 10) Application software – Web browser (Google Chrome)  Hardware – This includes devices that process data by executing instructions, storing data, and moving data and information between various Input/Output (I/O) devices, making the system and information accessible to users. Listed below are the basic hardware components that a computer has: Microprocessor – It is where the computer processes all data and instructions (or commands that a computer must do). Primary Storage – It is mostly used as temporary storage for processed data and running applications. Most of them are volatile. Some of the examples are random access memory (RAM) and cache memory. Secondary Storage – It is used to store files, applications, and operating system. o HDD (Hard Disk Drive) – It is a type of a non-volatile storage media that stores data on spinning magnetic disks rotating at a high-speed. o Flash Drive – It is a type of non-volatile storage media that stores data in a single flash memory. It is known for its portability. o SSD (Solid State Drive) – It is a type of a non-volatile storage media that stores data on a series of solid-state flash memory. It is known for its amazingly fast reading and writing data. Input devices o Keyboard – It is one of the primary input devices composed of buttons with alphanumeric characters. It also performs other functions. o Mouse – It is a handheld input device that is capable of controlling and maneuvering graphical user interface (GUI) with the use of a cursor on display. 01 Handout 1 *Property of STI  [email protected] Page 1 of 4 IT1910 Output devices o Monitor – It is capable of displaying the GUI of a computer. o Printer – It is capable of representing data on paper.  Communication – It consists of hardware and software that transport programs and data between interconnected computer systems. A communication channel provides the connection between computers. Some of the data media channels are copper, fiber-optic, and wireless (infrared [IR], radio frequency [RF], Wi-Fi, and Bluetooth). ARCHITECTURE Architecture in computer systems is the design of computer components in hardware being used, in the flow of data input-process-storage-output within the system, in algorithms being implemented, and more. The design can be distinguished into two (2): by form and by function. Design by Form: Classification of Computers Design by form refers to the structure and size of a system. From the structure of the system, computer systems can be classified by form to distinguish form factor. Microcomputers are usually small, low cost, and intended for one (1) user or one (1) device. These are used for a large variety of applications, from network access to business, educational, and entertainment applications and even games. (e.g., PC, PDA, gadgets, and console) Minicomputers are generally used in a multiuser environment. These servers act as a platform for a specific application, such as a print server that manages all printers and handles all print tasks or a mail server that manages all the organization’s mail. (e.g., single rack server [print, Web, file]) Mainframes are large organizational computer systems that act as the main computational infrastructure. These are usually very powerful and support many concurrent users.These systems host an organization’s databases and provide applications to support all business processes. (e.g., server farms [dsata centers]) Design by Function: Computer Operations Design by function pertains to the specific instruction or process that a computer system must have to meet criteria and application. These are the simplest functions of a computer: Input/Output pertains to the placing of data in or out of the computer system. Basic arithmetic and logical calculations pertains to mathematic calculations and comparison. Data transformation or translation pertains to the data that changes from one form to another due to instruction or need. Data sorting pertains to arrangement of data by a list or specific criterion or criteria. Searching for data matches pertains to the comparison of data to suffice condition. Data storage and retrieval pertains to getting and/or placing data in a non-volatile storage. Data movement pertains to the placement of data from one memory location to the other. Design by Function: Moore’s Law In addition to function, Moore’s Law can be included as a design by function due to the rapid influx of technology in today’s standards. From the semiconductor industry perspective, this law represents designing for rapid change of hardware. Thus, new architecture and emerging technology arise and is much better than 01 Handout 1 *Property of STI  [email protected] Page 2 of 4 IT1910 the first one. It also states that integrated circuit resources double every 18–24 months. This law relies on “Transistor count” as a basis for the advancement of integrated circuit. Figure 1. Transistors versus years according to Moore’s Law Architecture Complexity As technology arises, computers become more advance to the point of designing complex computer systems for a specific purpose. Thus, this results in the complexity of computer design. Through the complexity of computer architecture, the design and understanding of computer systems become harder. Solutions to Architecture Complexity These are the different solutions to solve this architecture complexity challenges:  Abstraction – It is used to characterize a certain object at different levels of representation offering models. Basically, it is an ideal model put into a representation. Figure 2. An example of abstraction – Input-process-output model.  Computer Hierarchy – It is a structure that has a predetermined ordering from high to low. It refers to systems that are organized in the shape of a pyramid, with each row of objects linked to objects directly beneath it. 01 Handout 1 *Property of STI  [email protected] Page 3 of 4 IT1910 Figure 3. An example of setting of hierarchy in computer terms (Memory hierarchy)  Decomposition – It is a process of splitting the system in smaller chunks; people can work better by working on smaller separate tasks. Once the system is decomposed, it does the following: Work on each chunk in different times (prioritizing important chunks) Give each chunk to a different person/team (work can be done in parallel). References: Berekovic, M., Buchty, R., Hamann, H., Koch, D., & Pionteck, T. (2018). Architecture of computing systems – ARCS 2018 proceedings. Switzerland: Springer Nature. Cargnegie Mellon Computer Architecture. (2015, January 24). Lecture 2. Fundamental concepts and ISA - Carnegie Mellon - Computer Architecture 2015 - Onur Mutlu [Video File]. Retrieved 2019, May 17 from https://www.youtube.com/watch?v=NpC39uS4K4o Elahi, A. (2018). Computer systems - Digital design, fundamentals of computer architecture and assembly language. Switzerland: Springer Nature. Englander, Irv. (2014). The architecture of computer hardware, systems software & networking (5th ed.). New Jersey: Wiley. Fisher, T. (2019). What is device manager? [Web log post]. Retrieved 2019, May 17 from https://www.lifewire.com/device-manager-2625860 Fisher, T. (2019). Task manager [Web log post]. Retrieved 2019, May 17 from: https://www.lifewire.com/task-manager- 2626025 Patterson, D. & Hennessy, J. (2017). Computer organization and design – The hardware/software interface. Massachusetts: Elsevier. Roser, M. & Ritchie, H. (2019). Technological progress. Retrieved 2019, May 17 from Our World in Data website: https://ourworldindata.org/technological-progress Space Challenges. (2015, March 23). What is systems architecture (PART 1) [Video File]. Retrieved 2019, May 17 from https://www.youtube.com/watch?v=gGI3n8qLDN0 Yadin, A. (2016). Computer systems architecture. Florida: CRC Press. 01 Handout 1 *Property of STI  [email protected] Page 4 of 4 IT1910 Data Formats Data, in computer terms, is a fact, figure, or information that is represented in a set of bits – ones and zeros. Wires and circuits bring forth these bits as electrical pulses in the computer system. These bits can be a file, information, or instruction. The user can edit, store, and delete data to meet his/her specific needs. Data in human form is entered to a computer using a keyboard, a mouse, or any other input device. From the human form, computers manipulate data to convert it to their own representation, which is in binaries of ones and zeros. General Considerations In order to follow the process of data, some considerations of each data flowing in the computer systems should be listed. 1. File Type – It is a name given to a specific kind of file. It may be either of the following examples: − Audio and video files − Image file − Compressed file − System-related and programming files − Disc and media files − Word processor and text files − Executable file − Presentation and spreadsheet files Terminologies for File Type a. File Name – It is a unique file identifier and may be named by a human or a computer. b. File Extension – It is a 1- to 4-letter character identifier for the specific file type. c. File Extension Icon – It is a common identifier for file extension. d. File Association – It is a program associated with the file extension. 2. File Format – It is a structure or layout of a computer file in terms of how data is contained and organized. The structure of a typical file may include a header, metadata, a saved content, and an end- of-file (EOF) marker. The data stored in the file depends on the purpose of the file format. 3. Metadata – It provides additional information about a certain item’s content. The other terms for metadata are descriptions, keywords, tags. (Example: JPEG – dimensions, date created, date accessed, color depth, etc.) 4. File Attributes – These are settings associated with computer files that grant or deny certain rights to how a user or the operating system can access that file. a. Read-only – It allows a file to be read, but nothing can be written to the file or changed. b. Archive – It tells Windows Backup to back up the file. c. System – It is a system file. d. Hidden – It is a file that cannot be seen when doing a regular directory. Classifications of Data As alphanumeric characters As a visual image (still and moving) As audio Internal computer data Data as Alphanumeric Characters Data are entered as characters, symbols, number digits, and punctuation. Specific input devices and methods are used to create these. (e.g., Keyboard, keypads, on-screen keys, magnetic card stripes, etc.) 02 Handout 1 *Property of STI  [email protected] Page 1 of 3 IT1910 Examples: 1. American Standard Code for Information Interchange (ASCII) was originally developed as a standard by the American National Standards Institute (ANSI). ANSI has also defined 8-bit extensions to the original ASCII codes that provide various symbols, line shapes, and accented foreign letters for the additional 128 entries. 2. Extended Binary Coded Decimal Interchange Code was developed by IBM. Its use is restricted mostly to IBM and IBM-compatible mainframe computers and terminals. 3. Unicode supports approximately a million characters, using a combination of 8-bit, 16-bit, and 32-bit words. It divides its character encodings into sixteen 16-bit code pages, called planes, which allows space for about a million characters. Data as Visual Data Images used within the computer fall into two (2) distinct categories: Bitmap objects are images (e. g., photographs and paintings) that are characterized using an image scanner, digital camera or mobile device, or video camera frame grabber. Graphical objects are images made up of graphical shapes (e. g., lines and curves) that can be defined geometrically. Examples: 1. Graphics Interchange Format (GIF) was first developed by CompuServe in 1987 as a proprietary format that would allow users to store and exchange online bitmap images in 256 colors on different computing platforms. Now, it is extensively used on the Web due to its animated frame-by-frame images. 2. Portable Network Graphics (PNG) is the best known compressed alternative to GIF. PNG can store up to 48 bits of color per pixel and can store a transparency percentage value and a correction factor for the color in a monitor or printer. 3. Joint Photographers Expert Group (JPEG) employs a compression algorithm to reduce the amount of data stored and transmitted. This algorithm reduces the image resolution under certain circumstances, particularly for sharp edges and lines, which makes JPEG more suitable for the representation of highly detailed photographs and paintings. Video images are a result of a sequence of bitmap image frames. The video format is determined by a codec or encoder/decoder algorithm referred to as a “container.” The container serves as a superstructure to encode, decode, hold, and stream video. It serves both video and audio and may support multiple codecs. Data as Audio Data Sound can be stored in digital form on storage media. Since the original sound wave is analog, conversion is needed to make it in digital form, where it is then sampled electronically at regular time intervals. Each time a sample is taken, it is measured by the ADC (Analog-to-Digital Converter) that converts the analog value to a digital (binary) equivalent (consists of sampling, quantization, and encoding). Sampling lays out of the analog signal in a graph. Quantization layers the discrete signal in the analog signal with less margin of error. Encoding converts discrete signals into highs (1) and lows (0), hence the binary equivalent of a time- bound discrete signal. 02 Handout 1 *Property of STI  [email protected] Page 2 of 3 IT1910 Internal Computer Data These are data types represented as interpretation from programming languages. Here are the factors to consider: The actual operations that the computer processor is capable of performing The data types that are supported by the programming language to create the application program. These are the simple data types: 1. Boolean – constant values (true/false) 2. Char – alphanumeric character code 3. Enumerated – user-defined data type 4. Integer – whole numbers (+ / -) 5. Real / Float – numbers with a decimal portion Data Compression Lossless algorithm compresses the data in such a way that the application of a matching inverse algorithm restores the compressed data exactly to its original form. Lossy algorithm operates on the assumption that the user can accept a certain amount of data degradation as a trade-off for the savings in a critical resource, such as storage requirements or data transmission time. References: A/D Converter and D/A Converter (n.d.). In ROHM Co., Ltd.’s website. Retrieved 2019, May 17 from https://www.rohm.com/electronics-basics/ad-da-converters/what-are-ad-da-converters Berekovic, M., Buchty, R., Hamann, H., Koch, D., & Pionteck, T. (2018). Architecture of computing systems – ARCS 2018 proceedings. Switzerland: Springer Nature. Christensson, P. (2011, March 15). File format definition. Retrieved from https://techterms.com/definition/file_format on May 17, 2019 Christensson, P. (2011, March 15). File type definition. Retrieved from https://techterms.com/definition/file_type on May 17, 2019 Computer Hope (2018). What are the most common file types and file extensions? [Web log post]. Retrieved 2019, May 17 from https://www.computerhope.com/issues/ch001789.htm Elahi, A. (2018). Computer systems - Digital design, fundamentals of computer architecture and assembly language. Switzerland: Springer Nature. Englander, I. (2014). The architecture of computer hardware, systems software & networking (5th ed.). New Jersey: Wiley. Ishida, R. (2010, August 12). Character encodings: Essential concepts. Retrieved from https://www.w3.org/International/articles/definitions-characters/ on May 17, 2019 Patterson, D. & Hennessy, J. (2017). Computer organization and design – The hardware/software interface. Massachusetts: Elsevier. [Techquickie]. (2018, September 28). Video file formats - MP4, MOV, MKV [Video File]. Retrieved from https://www.youtube.com/watch?v=hvgxn8v--8Q on May 17, 2019 WAVE PCM soundfile format (n.d.). In Soundfile: Basic Audio Programming in C++. Retrieved from http://soundfile.sapp.org/doc/WaveFormat/ on May 17, 2019 Yadin, A. (2016). Computer systems architecture. Florida: CRC Press. 02 Handout 1 *Property of STI  [email protected] Page 3 of 3 IT1910 Hardware Architecture Computer hardware is the collection of physical parts of a computer system. It can be categorized as having either external or internal components. External components, also called peripheral components, are those items that are often connected to the computer in order to control either its input or output. These include the computer case and monitor (output component), and keyboard and mouse (common input components). Internal components include items such as the hard disk drive, motherboard, video card, and many others. Generation and Advancements Each generation is defined with a specific technological advancement that made a mark throughout the computer hardware’s history.  1st Generation (Vacuum Tubes) The vacuum tube was invented in parallel to the electric bulb and used a similar concept. The switching capability, which is translated into turning on and off a particular bit, was the main reason for the important role the vacuum tubes played in early computers. It can also amplify specific signals that are used to boost specific frequencies.  2nd Generation (Transistors) Transistors became faster, smaller, highly reliable, and significantly cheaper than vacuum tubes. Through this generation, the transistor miniaturization process has occurred, reducing the size of transistors into smaller packages.  3rd Generation (Integrated Circuit) Sometimes referred to as a “semiconductor chip,” the integrated circuit is a collection of transistors integrated and compacted into a single chip. Keyboards and mice had been used as inputs. See Moore’s Law for reference.  4th Generation (Microprocessors) Computers in this generation were characterized by a significant increase in the number of transistors integrated into a single chip and by the invention of the microprocessor. The aim of inventing the new processor was to use it for the development of calculators.  5th Generation (Artificial Intelligence [AI]) VLSI (Very Large Scale Integration) technology in this generation became ULSI (Ultra Large Scale Integration) technology, resulting in the production of microprocessor chips having ten million electronic components. This generation is based on parallel processing hardware and AI software. AI is an emerging branch in computer science, which interprets the means and methods of making computers think like human beings. What is a Microprocessor? It is composed of integrated circuits that hold thousands of transistors responsible for processing the unique set of instructions and processes. It is designed to execute logical and computational tasks with typical operations such as arithmetic interprocess, device communication, input/output management, etc. 03 Handout 1 *Property of STI  [email protected] Page 1 of 5 IT1910 Microprocessor Components These are the components that made microprocessors more powerful and efficient throughout its invention and development: 1. Central Processing Unit (CPU) – It is responsible for accepting data from input devices, processing the data into information, and transferring the information to memory and output devices. 2. Arithmetic Logic Unit (ALU) – As the name implies, its function is to perform arithmetic operations, such as addition, subtraction, division, and multiplication, and logic operations such as AND, OR, and NOT. 3. Control Unit (CU) – Its function is to control the input and output devices, generate control signals to the other components of the computer such as read and write signals, and perform instruction execution. 4. Registers – It is the fastest memory in a computer that holds information. 5. Main Memory – This device is capable of storing information temporarily. 6. Clock – It refers to a microchip that regulates the timing and speed of all computer functions. 7. Input/Output Devices – These are any hardware used to communicate with a computer. 8. Input/Output Interfaces – These are physical devices, ports, or connections that interact with the computer or other hardware devices. Figure 1. Microprocessor components abstraction 9. Direct Memory Access – It is a feature of some computer bus architectures that allows data to be sent from a storage device to memory without using the CPU. 10. Bus – It is a pathway of data or instruction from one (1) element to the other. a. Data Bus – This bus is used to carry data to and from the memory. b. Address Bus – This bus defines the number of addressable locations in a memory IC. c. Control Bus – This bus carries control signals from the control unit to the computer components in order to control the operation of each component. Registers In computer architecture, a processor register provides the fastest way for a CPU to access data. Modern computer architectures operate on the principle of moving data from the main memory into registers, and vice versa. It holds a temporary value (IN BINARY) like data, instructions, memory addresses or I/O address, and special binary codes. Table 1. Comparison of registers and memory It can store, manipulate, and calculate values which vary from 16-bit, 32-bit, up to 64-bit registers sizes. 03 Handout 1 *Property of STI  [email protected] Page 2 of 5 IT1910 Kinds of Registers Registers assist in a particular transfer of data or an instruction to be processed. The following are the basic kinds of registers: General-Purpose Registers / Accumulator – These store any transient data required by the processor. Program Counter Register / Instruction Pointer – This holds the address of the current instruction being executed. Memory Address Register – This holds the address of a memory location. Memory Data Register – This holds a data value that is being stored to or retrieved from the memory location currently addressed by the memory address register. Status Registers / Flags – These are used to allow the computer to keep track of special conditions such as arithmetic carry and overflow, power failure, and internal computer error. CPU Architecture Generally, an architecture defines what an object looks like, behaves, processes, and responds. In the aspect of computers, it defines how a processor operates through hardware/software and how it is being handled by the user. Von Neumann Architecture It is a program consisting of code (instructions) and data. It uses a data bus to transfer data and instructions from the memory to the CPU. Memory holds both programs and data. It is still the standard architecture for all computers and computer-based devices. Harvard Architecture It uses separate buses for instructions and data. The instruction address bus and instruction bus are used for reading instructions from the memory. The address bus and data bus are used for writing and reading data to and from the memory. Instruction Set Architecture It allows communication between the hardware component and the software component of a computer. It is a group of commands for a CPU in a machine language. Commands/Instructions – Operation Code (Opcode) Example: ADD, SUB, MULT, DIV, JUMP, CMP, etc. Two (2) Types of ISA Complex Instruction Set Computer – It is a computer where single instructions can execute several low-level operations (such as a load from memory, an arithmetic operation, and a memory store) or can do multi-step operations or address modes within single instructions. Example: x86-x64 processors (Intel) 03 Handout 1 *Property of STI  [email protected] Page 3 of 5 IT1910 Reduced Instruction Set Computer – It is a computer which only uses simple instructions that can be divided into multiple instructions and perform low-level operations within a single clock cycle. Example: ARM (iPhone) Table 2. Comparison of CISC and RISC Architectures Microprocessor Operations These are the operations that a microprocessor has: Fetch – It is designed to fetch several instructions at a time in parallel. Decode – It identifies the opcode in which it determines the type of instruction. Execute – It executes the part/s for each different instruction. Each computer has a specific operation to which it will be processed. With a different instruction set, instructions may be processed differently. In the future, the exact parallel computing might be possible to grasp. Most of the computer processes today are more inclined into pipelining in which it can be near to parallel processing. Parallel Processing It is a method of simultaneously breaking up and running program tasks on multiple microprocessors, thereby reducing processing time. It can be accomplished via a computer with two (2) or more processors or via a computer network. It induces problems resulting in not being synchronized. Pipelining It is the process of accumulating and executing computer instructions and tasks from the processor via a logical pipeline. It allows storing, prioritizing, managing, and executing tasks and instructions in an orderly process. 03 Handout 1 *Property of STI  [email protected] Page 4 of 5 IT1910 Process Comparison Normal Processing Parallel Processing Pipelining References: Berekovic, M., Buchty, R., Hamann, H., Koch, D., & Pionteck, T. (2018). Architecture of computing systems – ARCS 2018 proceedings. Switzerland: Springer Nature. David Keizer. (2016, June 6). RISC vs CISC [Video file]. Retrieved from https://www.youtube.com/watch?v=_EKgwOAAWZA on May 21, 2019 DMA. (2018, November 13). In Computer Hope. Retrieved from https://www.computerhope.com/jargon/d/dma.htm on May 22, 2019 Input/output device. (2018, November 13). In Computer Hope. Retrieved from https://www.computerhope.com/jargon/i/iodevice.htm on May 22, 2019 CPU. (2019, April 13). In Computer Hope. Retrieved from https://www.computerhope.com/jargon/c/cpu.htm on May 22, 2019 Clock. (2017, October 2). In Computer Hope. Retrieved from https://www.computerhope.com/jargon/c/clock.htm on May 22, 2019 Computerphile. (2017, March 3). Inside the CPU - Computerphile [Video file]. Retrieved from https://www.youtube.com/watch?v=IAkj32VPcUE on May 24, 2019 craigndave. (2017, June 19). OCR A'Level CISC vs RISC [Video file]. Retrieved from https://www.youtube.com/watch?v=BJpMmq9gQE8 on May 24, 2019 David Keizer. (2016, June 3). RISC vs CISC [Video File]. Retrieved from https://www.youtube.com/watch?v=_EKgwOAAWZA on May 24, 2019 Easy Tech Tips. (2014, December 18). Parallel computing explained in 3 minutes [Video file]. Retrieved from https://www.youtube.com/watch?v=q7sgzDH1cR8 on May 24, 2019 Elahi, A. (2018). Computer systems - Digital design, fundamentals of computer architecture and assembly language. Switzerland: Springer Nature. Englander, Irv. (2014). The architecture of computer hardware, systems software & networking (5th ed.). New Jersey: Wiley. Patterson, D. & Hennessy, J. (2017). Computer organization and design – The hardware/software interface. Massachusetts: Elsevier. Computer - Fifth Generation. (n.d.). In TutorialsPoint. Retrieved from https://www.tutorialspoint.com/computer_fundamentals/computer_fifth_generation.htm on May 22, 2019 Undy, S. (n.d.). Massive Parallelism for Mission-Critical Applications - Advanced Explicitly Parallel Instruction Computing (EPIC) Architecture. Retrieved from https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/itanium- 9500-massive-parallelism-mission-critical-computing-paper.pdf on May 24, 2019 [Vaishvik Satyam]. (2017, March 29). Difference between CISC and RISC Architecture [Video file]. Retrieved from https://www.youtube.com/watch?v=07cpxBfy7JI on May 24, 2019 Yadin, A. (2016). Computer systems architecture. Florida: CRC Press. What is the difference between the Von Neumann architecture and the Harvard architecture?. (n.d.). In Quora. Retrieved from https://www.quora.com/What-is-the-difference-between-the-Von-Neumann-architecture-and-the-Harvard-architecture on May 22, 2019 Parallel Processing. (n.d.). In Techopedia. Retrieved from https://www.techopedia.com/definition/4598/parallel-processing on May 22, 2019 What is computer hardware?. (n.d.). In Quora. Retrieved from https://www.quora.com/What-is-computer-hardware on May 22, 2019 Microprocessor. (n.d.). In Techopedia. Retrieved from https://www.techopedia.com/definition/2874/microprocessor on May 24, 2019 03 Handout 1 *Property of STI  [email protected] Page 5 of 5 IT1910 Memory What is a Memory? A memory holds instructions (code) and data. It plays an important part of a computer performance. Register is a type of memory with small capacity. It can be described as a one-dimensional matrix of cells used to store and retrieve data. Each cell has an address that provides a unique mechanism for accessing the data it stores. There are two types of memory used in a computer: Primary (Semiconductors – RAM & ROM) Secondary (HDD, SSD, Flash, Tape, Disk & Optical Drives, etc.) Semiconductor Technologies Types of semiconductor memory: Volatile memory o It needs constant power to retain data. Its contents are lost when power is removed from it. o Example: Random Access Memory and Cache Memory Nonvolatile memory o It keeps its contents even without power. It can retrieve stored information even after having been Table 1. Memory prefixes in bytes power cycled. o Example: Read-Only Memory and Flash Memory Random Access Memory (RAM) This is a volatile type of memory. It is called “random access” because any storage location can be accessed directly. The data bus allows the passage of data in or out the RAM. The address bus is used to select a memory location. The read signal activates when reading data from RAM. The write line activates when writing to the RAM. Figure 1. Memory operations with computer bus RAM Operations: Read, Write, and Chip Select. Types of RAM Static RAM (SRAM) is almost 20 times faster and is much more expensive than DRAM. D Flip Flop is one-bit static RAM. o Cache (L1, L2, L3) Dynamic RAM (DRAM) uses fewer components to make one (1) bit; therefore, it can design DRAM integrated circuit (IC) with a large capacity of 4 GB per IC. 04 Handout 1 *Property of STI  [email protected] Page 1 of 4 IT1910 o Fast Page Mode RAM (FPMRAM) – It allows faster access to data in the same row or page. Page- mode memory works by eliminating the need for a row address if data is located in the row previously accessed. o Extended Data Out (EDORAM) – It transfers blocks of data to or from the memory. o Synchronous DRAM (SDRAM) – This technology uses DRAM and adds a special interface for synchronization. It can run at much higher clock speeds than DRAM. o Rambus DRAM (RDRAM) – This was developed by Rambus Corporation. It uses multiple DRAM banks with a new interface that enables DRAM banks to transfer multiple words and transfer data at the rising edge and the falling edge of a clock. o Double Data Rate SDRAM (DDR SDRAM) – It is a type of SDRAM that transfers data for both rising edge and falling edge of the clock. It can move data twice as fast than SDRM; therefore, memory can run at the ½ clock rate. Types of RAM Packaging Single In-line Memory Module (SIMM) is a small circuit board where one (1) side of the board holds several chips. Dual In-line Memory Module (DIMM) is a circuit board, in which both sides of the board hold several memory chips but has a 64 bit data bus. o SO-DIMMM (Small Outline) – It is a small version of DIMM used commonly in notebook computers. o Micro-DIMM – It is a competing memory used on laptops and mostly supports 144 and 172 pins. Rambus In-line Memory Module (RIMM) is similar to a DIMM package but uses different pin settings in which it contains 184 or 232 pins. Read-Only Memory From the term, information can be “read” only from this type of memory. It holds information permanently even while there is no power to the ROM. It is a nonvolatile type of memory. Types of ROM Programmable ROM (PROM) is a memory chip where data can be written only once. Erasable PROM (EPROM) can be erased with ultraviolet light and reprogrammed with a device called an EPROM programmer. Flash ROM is a type of EEPROM. Electrically EPROM (EEPROM) can be erased by applying specific voltage to one of its pins and can be reprogrammed with an EPROM programmer. Example: NAND Flash Memory and BIOS o Flash Memory – It is a nonvolatile memory that has a wide range of applications such as flash drive, solid-state drive, memory card, and embedded system. It is a type of EEPROM that allows multiple memory location to be written or erased on one (1) operation. There are two (2) types of technology use for flash memory: NAND and NOR flash memories. NAND flash memory has smaller access time than NOR flash memory. Most flash memories use NAND technology. 04 Handout 1 *Property of STI  [email protected] Page 2 of 4 IT1910 Figure 2. Memory hierarchy according to latency Figure 3. Memory hierarchy according to capacity, price, and performance What is computer bottlenecking? It is the delay in transmission of data through the circuits of a computer’s microprocessor. The delay typically occurs when a system’s bandwidth cannot support the amount of information being relayed at the speed it is being processed. Many factors can create a bottleneck in a system as well. Memory Partitioning A partition is a defined area in memory that stores a program to be executed. The partition size defines the processes that could execute in the specific partition. The number of partitions defined determines the number of processes that could run concurrently. Fixed Partitioning – The main memory is divided into several static partitions at system generation time. A process may be loaded into a partition of equal or greater size. o Possibilities: Equal size partitioning and unequal size partitioning Dynamic Partitioning – The partitions are of variable length and number. When a process is brought into main memory, it is allocated exactly as much memory as it requires and no more. o Possibilities: Small holes in memory and external fragmentation 04 Handout 1 *Property of STI  [email protected] Page 3 of 4 IT1910 Virtual Memory It is used for storing application data and instructions that are currently not needed to be process by the CPU. It also enables a system to run application larger than main memory. The hard disk drive (HDD) or solid state drive (SSD) is extended as part of the memory and includes allocations and addresses. Caching It was the name chosen to represent the level of the memory hierarchy between the processor and main memory. The term “caching” also refers to any storage managed to take advantage of locality of reference. Its main contribution is in improving the execution speed. Its properties include reduction of latency, more capacity, and cache availability. Types of Cache Memory L1 Cache (Primary Cache) – This cache level is as fast as the processor because it is embedded in the processor. L2 Cache (External Cache) – This cache level is used to catch recent data access from the processor not caught by Level 1. L3 Cache (Shared Cache) – This cache catches the recent data all across CPU cores; this is usually slower than L1 and L2 Locality of Reference It is the tendency of a processor to access the same set of memory locations repetitively over a short time. Temporal Locality – A resource that is referenced at one (1) point in time is referenced again soon after. Spatial Locality – The likelihood of referencing a storage location is greater if a storage location near it has been recently referenced. Accessing a cache is based on the following predictions: Cache Hit – looking for the same piece of data again. Cache Miss – data that isn’t in the cache; it causes latency and delay. References: Berekovic, M., Buchty, R., Hamann, H., Koch, D., & Pionteck, T. (2018). Architecture of computing systems – ARCS 2018 proceedings. Switzerland: Springer Nature. Brazil, B. (2015, August 21). The three types of cache [Web log post]. Retrieved from https://www.robustperception.io/the-three-types-of-cache on May 22, 2019 CrashCourse. (2017, July 5). Memory & storage: Crash course computer science #19 [Video file]. Retrieved from https://www.youtube.com/watch?v=TQCr9RV7twk on May 30, 2019 David Black-Schaffer. (2014, July 14). Virtual memory: 3 What is virtual memory? [Video file]. Retrieved from https://www.youtube.com/watch?v=qlH4-oHnBb8 on May 30, 2019 Elahi, A. (2018). Computer systems - Digital design, fundamentals of computer architecture and assembly language. Switzerland: Springer Nature. Englander, Irv. (2014). The architecture of computer hardware, systems software & networking (5th ed.). New Jersey: Wiley. Memory. (n.d.). In Escotal.com. Retrieved from http://www.escotal.com/memory.html on May 29, 2019 Kollannore, S. (n.d.). Study materials on computer organization. Retrieved from http://www.lsp4you.com/electronics/Generation%20of%20Computers.pdf on May 22, 2019 Nair, J. (2013, August 27). Computer hardware [PowerPoint slides]. Retrieved from https://image.slidesharecdn.com/computerhardware-130827044656- phpapp01/95/computer-hardware-11-638.jpg?cb=1377579134 on May 22, 2019 Patterson, D. & Hennessy, J. (2017). Computer organization and design – The hardware/software interface. Massachusetts: Elsevier. Prabu, G. (n.d.). Computer Architecture Tutorial. In Iowa State University Department of Science. Retrieved from http://web.cs.iastate.edu/~prabhu/Tutorial/title.html on May 23, 2019 Rampur, S. (2018, March 24). Computer Memory Types. In Techspirited. Retrieved from https://techspirited.com/computer-memory-types on May 29, 2019 Techquickie. (2014, April 13). Different kinds of memory as fast as possible [Video file]. Retrieved from https://www.youtube.com/watch?v=dZcszUj5szA on May 30, 2019 Computer memory. (n.d.). In TutorialsPoint. Retrieved from https://www.tutorialspoint.com/computer_fundamentals/computer_memory.htm on May 29, 2019 Yadin, A. (2016). Computer Systems Architecture. Florida: CRC Press. David Keizer. (2016, June 6). RISC vs CISC [Video file]. Retrieved from https://www.youtube.com/watch?v=_EKgwOAAWZA on May 21, 2019 Bottleneck. (n.d.). In Webopedia. Retrieved from https://www.webopedia.com/TERM/B/bottleneck.html on May 29, 2019 IDC Technologies. (n.d.). Memory partitioning [PDF]. Retrieved from http://www.idc- online.com/technical_references/pdfs/information_technology/Memory_Partitioning.pdf on May 29, 2019 Why Random Access?. (n.d.). In Carleton University School of Computer Science. Retrieved from http://people.scs.carleton.ca/~armyunis/notes/ram.htm on May 29, 2019 04 Handout 1 *Property of STI  [email protected] Page 4 of 4 IT1910 Computer Bus It is a communication pathway that connects two (2) or more devices or modules used for transferring data. It consists of a set of conductors. Examples of these conductors are ribbon cables, external cabling, copper tracks on a printed circuit board, microscopic aluminum trails on the surface of a silicon chip, and other many forms. Each devices connected to the computer bus, in a form of trailings or wires, transmits a bit of data (1 or 0). Thus, the collection of wires is capable of transferring a byte or a word at a time as a function of its width. Architecture of a System Bus In reality, each bus consists of 50 to 100 distinct physical lines divided into three (3) subassemblies: Address bus (memory bus) – It is a unidirectional bus that transports memory addresses which the processor wants to access to read or write data. Data bus – It is a bidirectional bus that transfers instructions coming from or going to the processor. Control bus (command bus) – It is a bidirectional bus that transports orders and synchronization signals coming from the control unit and traveling to all other hardware components. It also transmits response signals from the hardware. Methods of Data Transmission There are two (2) kinds of data transmission methods that are frequently used in data communication: Serial – It is normally used for long-distance data transfer and in cases where the amount of data being sent is relatively small. It ensures that the data integrity is maintained as it transmits the data bits in a specific order, one after another. Data bits are sent one by one in a medium. Parallel – When data is sent using parallel data transmission, multiple data bits are transmitted over multiple channels at the same time. This implies that data can be sent faster than using serial transmission methods. Serial Bus versus Parallel Bus The comparison of the two (2) buses implies similarities and differences for a specific purpose of data transmission. These buses are used in different applications and functions (see Table 1). PARALLEL BUS SERIAL BUS Transmits several streams of data simultaneously Can transmit fewer data in faster clock cycle to along multiple channels achieve a higher data rate Widely used within integrated circuits Requires fewer interconnecting cables (e.g., Half-duplex – the data is either sent or received wires and fibers) and occupies less space Used for a short distance Full-duplex – the sender can send and receive data simultaneously Used for long-distance communication Table 1. Comparison of parallel bus and serial bus Bus Communication Protocols A bus transfers electrical signals from one place to another. Data travels between the CPU and memory along the data bus. The location (address) of that data is carried along the address bus. There are two (2) types of bus protocols: Synchronous – Data bits are transmitted as a continuous stream in time with a master clock. The data transmitter and receiver both operate using a synchronized clock frequency; therefore, start bits, stop 05 Handout 1 *Property of STI  [email protected] Page 1 of 4 IT1910 bits, and gaps are not used. This implies that data moves faster and timing errors are less frequent because the transmitter and receiver time is synced. However, data accuracy is highly dependent on timing being synced correctly between devices. Asynchronous – Data bits can be sent at any point in time. Stop bits and start bits are used between data bytes to synchronize the transmitter and receiver and to ensure that the data is transmitted correctly. The time between sending and receiving data bits is not constant; thus, gaps are used to provide time between transmissions. Bus Arbitration More than one (1) module may need control of the bus (e.g., CPU and DMA controller). The I/O module may need to read or write directly to memory, without sending the data to the processor. The process by which multiple requests are recognized and priority is given to one of them is called arbitration. Centralized Arbitration o In here, an arbitration circuit receives requests from the contending bus masters and then decides which of them is to be given control of the bus. o A single hardware device, known as a bus controller or arbiter, is responsible for allocating time to bus. o The device may be part of the CPU or a separate module such as daisy-chaining. Distributed Arbitration o There is no central controller. Each module may claim the bus. o All devices monitor all the request lines. o In a system with distributed arbitration, each of the masters takes part in the arbitration process. o The system lacks a specific arbiter—each master monitors the other masters and decides whether to continue competing for the bus or give up and wait until later. Characteristics of a Computer Bus Listed below are the common characteristics that a computer bus must have. Data Sharing – All types of buses found in computer transfer data between computer peripherals connected to it. Addressing – A bus has address lines that match those of the processor. This allows data to be sent to or from specific memory locations. Power – A bus supplies power to various peripherals connected to it. Timing – A bus provides a system clock signal to synchronize the peripherals attached to it with the rest of the system. Chipset A chipset is a component that routes data between a computer’s buses. This enables all of the components that make up the computer to communicate with each other. Northbridge (memory controller) is in charge of controlling the transfer of data between the processor and the random access memory (RAM), which is why it is located physically near the processor. o Internal Bus (Front-Side Bus or FSB) – This allows the processor to communicate with the system’s central memory or the RAM. Southbridge (input/output controller or expansion controller) handles communications between peripheral devices. It is also called the ICH (I/O Controller Hub). 05 Handout 1 *Property of STI  [email protected] Page 2 of 4 IT1910 o Expansion Bus (Input/Output Bus) – This allows various motherboard components (i.e., USB or serial) to communicate with one another. Computer Bus Technologies Here are some of the common expansion bus types that were used in computers: Previously Used Technology Industry Standard Architecture (ISA) – IBM introduced this bus for IBM PC using an 8088 microprocessor. This has an 8-bit data bus and 20 address lines at a clock speed of 8 MHz. Video Electronics Standards Association (VESA) – This bus is a standard interface between a computer and its expansion. As applications became more graphically intensive, the VESA bus was introduced to maximize throughput of video graphics memory. This also provides fast data flow between stations and can transfer up to 132 Mbps. Accelerated Graphics Port (AGP) – This is connected to the CPU. This operates at the speed of the processor bus and implies that video information is sent quickly to the card for processing. The data transfer rate ranges from 264 Mbps to 528Mbps and 800 Mbps up to 1.5 Gbps. The AGP connector is identified by its brown color. Peripheral Component Interconnect (PCI) – Intel Corporation developed this bus. The PCI bus technology includes a 32- or 64-bit bus that runs at 33/66 MHz clock speed. It offers many advantages for connections to hubs, routers, and network interface cards (NIC). In particular, PCI provides more bandwidth up to 1 Gigabit per second as needed by these hardware components. Currently Used Technology Small Computer Systems Interface (SCSI) – It is a set of ANSI (American National Standards Institute) standard electronic interfaces that allows PCs to communicate faster with peripheral hardware (e. g., disk drives, tape drives, CD-ROM drives, printers, and scanners). It is more flexible than previous parallel data transfer interfaces. Personal Computer Memory Card Industry Association (PCMCIA) – This was founded to give a standard bus for laptop computers. A PCMCIA card has a 68-pin connector that connects into a slot in the PC. These cards are plug-and-play devices that are often hot-swappable in most of the operating systems. Peripheral Component Interconnect Express (PCIe) – It is an interface standard for connecting high- speed components. PCIe slots come in different physical configurations: x1, x4, x8, x16, x32. The number after the “x” implies the number of lanes (how data travels to and from the PCIe card) that a PCIe slot has. Universal Serial Bus (USB) – It connects peripheral devices such as digital cameras, mice, keyboards, printers, scanners, media devices, external hard drives, and flash drives. It is intended to enhance plug- and-play and to allow hot-swapping. Plug-and-play enables the operating system to configure and discover a peripheral device spontaneously without having to restart the computer. Additionally, hot-swapping allows removal and replacement of a new peripheral without having to reboot. Because of its wide variety of uses, including support for electrical power, the USB has replaced a wide range of interfaces like the parallel and serial ports. 05 Handout 1 *Property of STI  [email protected] Page 3 of 4 IT1910 References: Berekovic, M., Buchty, R., Hamann, H., Koch, D., & Pionteck, T. (2018). Architecture of computing systems – ARCS 2018 proceedings. Switzerland: Springer Nature. Computer Bus - What Is It? (n.d.). In CCM. Retrieved from https://ccm.net/contents/375-computer-bus-what-is-it on June 27, 2019 David Keizer. (2016, June 6). RISC vs CISC [Video file]. Retrieved from https://www.youtube.com/watch?v=_EKgwOAAWZA on May 21, 2019 Edgington, A. (2017, July 17). The Ultimate Guide to USB Cables [Image]. Retrieved 2019, June 27 from https://www.conwire.com/ultimate-guide-usb-cables/ Education 4u. (2017, December 11). daisychain arbitaration | COA | [Video file]. Retrieved 2019, June 27 from https://www.youtube.com/watch?v=0GUW00xU9E8 Elahi, A. (2018). Computer systems - Digital design, fundamentals of computer architecture and assembly language. Switzerland: Springer Nature. Englander, Irv. (2014). The architecture of computer hardware, systems software & networking (5th ed.). New Jersey: Wiley. Essays, UK. (November 2018). Computer System Architecture of Buses [Essay]. Retrieved from https://www.ukessays.com/essays/internet/characteristics-of-buses.php?vref=1 on June 27, 2019 Ganesh Dhase. (2016, December 11). Bus in Computer [Video file]. Retrieved from https://www.youtube.com/watch?v=0FLBKsBzuqA June 27, 2019 Geekboots. (2019, February 9). Parallel bus vs Serial bus [Web log post]. Retrieved from https://www.geekboots.com/story/parallel-bus-vs-serial-bus on June 27, 2019 Harding, S. (2019, June 25). What is PCIe? A basic definition. In Tom’s Hardware. Retrieved from https://www.tomshardware.com/reviews/pcie-definition,5754.html on June 27, 2019 Indiana University (2018, January 18). ARCHIVED: What is PCMCIA, and what is a PC card? [Web Article]. Retrieved 2019, June 27 from https://kb.iu.edu/d/ahtn John, J. (2015). I/O peripherals, buses and data storage systems [PowerPoint slides]. Retrieved from https://slideplayer.com/slide/1593892/ on June 27, 2019 Kamau, P. (2019, January 12). Types of computer buses. In Turbo Future. Retrieved from https://turbofuture.com/computers/buses on June 27, 2019 Mellon, L. (n.d.). Data Transmission – Parallel vs Serial. Retrieved from http://www.cut.ac.zw/espace/mchinyuku/1410878742.pdf on June 27, 2019 Mchinkuyu. (n.d.). Computer Buses. Retrieved from Chinhoyi University of Technology website: http://www.cut.ac.zw/espace/mchinyuku/1410878742.pdf on May 22, 2019 Patterson, D. & Hennessy, J. (2017). Computer organization and design – The hardware/software interface. Massachusetts: Elsevier. PCMCIA. (2018, November 13). In Computer Hope. Retrieved from https://www.computerhope.com/jargon/p/pcmcia.htm on June 27, 2019 Professor Messer. (2015, November 29). Motherboard Expansion Slots and Bus Speeds - CompTIA A+ 220-901 - 1.2 [Video file]. Retrieved from https://www.youtube.com/watch?v=-R6gsPo6LEQ on June 27, 2019 SCSI (Small Computer System Interface). (2015, May). In TechTarget. Retrieved from https://searchstorage.techtarget.com/definition/SCSI on June 27, 2019 Thakur, D. (n.d.). What is bus? | Types of computer bus. In Ecomputernotes.com. Retrieved from http://ecomputernotes.com/fundamental/introduction-to-computer/bus on June 27, 2019 Tory Klementsen. (2016, November 28). Buses and Chipsets Lecture [Video file]. Retrieved from https://www.youtube.com/watch?v=NQzUl3ZeVw0 on June 27, 2019 Universal Serial Bus (USB). (n.d.). In Techopedia. Retrieved from https://www.techopedia.com/definition/2320/universal-serial-bus-usb on June 27, 2019 Yadin, A. (2016). Computer Systems Architecture. Florida: CRC Press. 05 Handout 1 *Property of STI  [email protected] Page 4 of 4 IT1910 I/O Architecture The peripheral devices are the main vehicle for obtaining the benefits from the system since they are responsible for the input/output (I/O) and for connecting the system to the outside world. Some devices have a dual role, such as mass storage, networks, and so on—these are both I/O devices. In general, these peripheral devices can be divided into the following: Input peripherals – This allows user input from the outside world to the computer. Output peripherals – This allows information output from the computer to the outside world. Input-output peripherals – This allows information to be sent through input and output. Storage – This allows the usage of I/O for storing and fetching of information. I/O Characteristics These are the following characteristics to consider in dealing with I/O devices and controllers: Computer usefulness ultimately depends on its I/O capabilities. I/O devices are incredibly diverse with respect to the following: o Behavior – input, output, or storage purposes o Partner – human or machine interaction o Data rate – the amount of data transferred to or from the I/O device in a period. It is typically measured in bits per second I/O considerations: o Performance – This refers to how fast the device is. o Expandability – This refers to the expansion of the I/O device. o Dependability – This refers to the capability of the range and control of an I/O device. o Cost – This refers to the cost (how cheap or expensive) of an I/O module or device. o Size and Weight – These refer to the dimensions of an I/O device. Device Input/Output Data Rate* Control Keyboard Input Very Low External & Software Mouse Touchpad Input Low External Touch Screen Scanner Input Medium External & Software Microphone Input Low to Medium External & Software Sound Input/Output Medium Program USB Input/Output Low to Very High External & Software Network Input/Output High to Very High External & Software Printer Output Low to Medium Program Graphics Display Output High Program Flash Drive Storage Medium External & Software Magnetic Disk Storage Medium Program Solid State Drive Storage Medium to High Program Optical Drive Storage Medium to High External & Software Magnetic Drive Storage Low to Medium External & Software Table 1. Characteristics of Typical I/O Devices *Very Low < 500 bps; Low < 5 Kbps; Medium < 10 Mbps; High 10 – 100 Mbps; Very High 100 – 5000 Mbps 06 Handout 1 *Property of STI  [email protected] Page 1 of 3 IT1910 I/O Performance Below are the parameters used in checking the performance of each I/O device or controller. I/O bandwidth (throughput) – This is the amount of information that can be input (output) and communicated across an interconnect (say, for example, a bus) to the processor or memory (I/O device) per unit time. o How much data can be moved through the system at a certain time? o How many I/O operations can be done per unit time? I/O response time (latency) – This is the total elapsed time to accomplish by an input or output operation. This is also an especially important performance metric in real-time systems. Modes of I/O Data Transfer Data transfer between the central unit and I/O devices can be handled in three (3) types of modes: Programmed I/O – These instructions are the result of I/O instructions written in a computer program. The instruction in the program initiates each data item transfer. Usually, the program controls data transfer to and from the CPU and peripheral. Transferring data under programmed I/O requires constant monitoring of the peripherals by the CPU. The CPU has the following pair of registers to interface with an I/O device: o Data register for holding I/O data o Address register for addressing the I/O device. Interrupt Initiated I/O – The interface determines when the peripheral is ready for data transfer, then it generates an interrupt. After receiving the interrupt signal, the CPU stops the task it processes and service the I/O transfer. Then, it returns to its previous processing task. Interrupts require CPU immediate attention (e.g., keyboard input, power failure, completion of I/O, etc.). These are the following uses of interrupts: o As an external event notifier. This process periodically checks for external events (ex. checking keyboard input). o As a completion signal. It can be a notifier when a process is complete. o As a means of allocating CPU time. The time between interrupt pulses is known as a quantum, which represents the time that each program or process will have allotted to it. o The interrupt as an abnormal event indicator. It uses traps or exceptions to avoid errors or illegal instructions. o Software interrupts. Programs or applications with higher priority and privileges (depending on the user’s and system’s grant) can request a special interrupt if prompted. Direct Memory Access (DMA) – It is a technique of removing the CPU from the path and letting the peripheral device manage the memory buses directly to improve the speed of transfer. A DMA controller manages the transfer of data between peripherals and memory unit. Many hardware systems use DMA, such as disk drive controllers, graphic cards, network cards, sound cards, etc. In DMA, the CPU initiates the transfer, does other operations while the transfer is in progress, and receives an interrupt from the DMA controller when the transfer has been completed. The three (3) main conditions to meet for a DMA to work are as follows: o Method to connect the I/O module and the memory o The I/O module must be able to read from and write to the memory o Method to avoid conflict between the CPU and the I/O module writing to memory at the same time. 06 Handout 1 *Property of STI  [email protected] Page 2 of 3 IT1910 There are different DMA methods of execution: o Buffer Chaining  It handles multiple transfers without the processor.  The device gives a linked list of buffers.  The device hardware uses the next buffer on the list automatically. o Operation Chaining  Further optimization for smart device  The processor gives a series of commands to the device, sometimes called a channel program.  The device carries out successive commands automatically I/O Controller The I/O controller serves as an intermediary interface between the CPU and a specific device that accepts commands from the CPU and controls the exact device after. Most of the I/O controllers are device controllers that serve as direct interfaces between a general system bus and each of the system’s peripheral devices. In general, I/O controllers simplify the task of interfacing peripheral devices to a CPU. I/O controllers offload a considerable amount of work from the CPU. They make it possible to control I/O to a peripheral with a few simple I/O commands from the CPU. They also support DMA so the CPU may be free to perform other tasks. Device controllers provide the specialized circuitry required to interface different types of peripherals to the computer. I/O controllers allow the processing of each instruction to progress in parallel. These are the following functions of an I/O controller: Interface translation – It includes the connection, voltage supply, protocol enactor, clocking. Addressing – It is able to process memory locations or addresses for the function of processing. Multiplexing – It can combine multiple signals over the bus to reduce multiple bus usage. Buffering – It gives data transfer a boost by preloading data into memory before processing. Error detection and correction – It can detect errors and correction. Control of multiple steps – This reduces CPU workload due to I/O controller being the one that processes I/O instructions. Computer Drivers A device driver is a small piece of software that tells the operating system and other software how to communicate with a piece of hardware. Device drivers are like translators between a program being used and a device that program wants to utilize somehow. In other words, a software program can provide information to a driver to explain what it wants a piece of hardware to do, information the device driver understands and can fulfill with the hardware. References: Abdullah M. (2015, July 29). Input Output – Computer Architecture [PowerPoint slides]. Retrieved from https://www.slideshare.net/freelancermaruf/input-output-computer- architecture on July 1, 2019 [Abelardo Pardo]. (2013, October 3). Input/Output architectures [Video file]. Retrieved from https://www.youtube.com/watch?v=hyXGB8UYDVg on July 1, 2019 Algonquin College. (n.d.). Chapter 9 – Input/Output [Lecture notes]. Retrieved from http://elearning.algonquincollege.com/coursemat/abufarn/dat2343/chap_9.htm Berekovic, M., Buchty, R., Hamann, H., Koch, D., & Pionteck, T. (2018). Architecture of computing systems – ARCS 2018 proceedings. Switzerland: Springer Nature. Cho, S. (n.d.). CS/COE1541: Intro. To Computer Architecture - Input/output subsystem [PDF file]. Retrieved from Computer Science Department, University of Pittsburgh website: https://people.cs.pitt.edu/~cho/cs1541/current/handouts/lect-io_4up.pdf on July 1, 2019 Elahi, A. (2018). Computer systems - Digital design, fundamentals of computer architecture and assembly language. Switzerland: Springer Nature. Englander, Irv. (2014). The architecture of computer hardware, systems software & networking (5th ed.). New Jersey: Wiley. Fisher, T. (2019, May 16). What Is a Device Driver?. Retrieved from https://www.lifewire.com/what-is-a-device-driver-2625796 on July 1, 2019 GATEBOOK Video Lectures. (2017, July 25). Introduction to I/O [Video file]. Retrieved from https://www.youtube.com/watch?v=mNy3V484lkQ on July 1, 2019 I/O Interface (Interrupt and DMA Mode). (n.d.). In Geeksforgeeks. Retrieved from https://www.geeksforgeeks.org/io-interface-interrupt-dma-mode/ on June 26, 2019 Patterson, D. & Hennessy, J. (2017). Computer organization and design – The hardware/software interface. Massachusetts: Elsevier. Computer Architecture: Input/Output Organisation. (n.d.). In StudyTonight. Retrieved from https://www.studytonight.com/computer-architecture/input-output- organisation on July 1, 2019 venkatesan ramachandrans. (2017, April 22). What is an Interrupt? [Video file]. Retrieved from https://www.youtube.com/watch?v=NYTK65RrjnE on July 1, 2019 Williams, K. (n.d.) I/O Controllers [PDF file]. Retrieved from http://williams.comp.ncat.edu/COMP375/IO.pdf on July 1, 2019 William & Mary College. (n.d.). I/O systems [PowerPoint slides]. Retrieved from www.cs.wm.edu/~esmirni/Teaching/cs424/IOsystems.ppt on July 1, 2019 Yadin, A. (2016). Computer systems architecture. Florida: CRC Press. 06 Handout 1 *Property of STI  [email protected] Page 3 of 3 IT1910 Computer Storage Computer use several storage devices that serve a variety of needs and purposes. Storage devices are computer hardware used to remember or store data. These devices can be divided into two (2) types based on the access to stored data and access to devices: Serial access – This means that when reading a data item, all previous items have to be read or skipped. The major limitation of serial access storage devices is that the location of the searched item influences the search time. Random access (direct) – It is possible to get to the required item directly. Memory, for example, is a direct-access device. The access time for obtaining a data item using direct access storage devices is almost similar for all items, regardless of their location. Hierarchy of Storage Primary Storage – The CPU accesses the data or instruction in the conventional memory (RAM) if the data in the cache memory is not present. Both conventional and cache memory provide immediate access to program instructions and data by the CPU and can be used for the execution of programs. Secondary Storage – This is the level of conventional memory in which the storage in the hierarchy is not immediately available to the CPU. This is treated as the I/O where data and programs must be copied to primary memory for CPU access. Except for flash memory, access to secondary storage is significantly slower than primary storage. Kinds of Storage Magnetic Disks – These consist of one (1) or more flat, circular platters made of glass, metal, or plastic, and are coated with a magnetic substance. Particles within a small area of the magnetic substance can be polarized magnetically in one of the two (2) directions with an electromagnet. An electromagnet can also detect the direction of polarization previously recorded. Thus, magnetic polarization can be used to distinguish 1’s and 0’s. A drive motor rotates the disk platter(s) on its central axis. On most drives, the motor rotates the disk at a fixed speed. An arm has the read/write head mounted at the end, where each arm contains two (2) read/write heads that services the surfaces of two (2) adjoining platters. o With the head in a particular position, it traces out a circle on the disk surface as the disk rotates; this circle is known as a track. o Since the heads on each surface all line up, the set of tracks for all the surfaces form a cylinder. o Each track contains one (1) or more blocks of data. Traditionally, the surface of the disk platter are viewed as divided into equally sized pie shape segments, known as sectors, although current disks divide up the track somewhat differently. o Each sector on a single track contains one (1) block of data, typically 512 or 4,096 bytes, which represents the smallest unit that can be independently read or written. Disk Characteristics o Access Time – This refers to the time that takes to start transfer data. It is also the sum of seek time and rotational delay. o Reading or writing time – This refers to the time required for the head to read or write the data. The reading or writing time depends on the electronic data transfer (the head is over the requested location, and all it has to do is read or write the data). o Seek Time – This refers to the time that takes the head move to the proper track. 07 Handout 1 *Property of STI  [email protected] Page 1 of 6 IT1910 o Rotational Delay – This refers the time that it takes a sector to be positioned under read/write head, depending on rotation speed. o Rotation speed – This is represented by revolutions per minute (RPM) and assumes that the sector is away from head half of the track; therefore, the Disk File System calculates the rotation delay. o File system – This defines the organization of information stored in the hard disk. Here are the common file systems of OS:  Linux – EXT, XFS  Windows – FAT, NTFS  Mac OSX – HFS+, APFS Solid State Memory – It is a solid state storage medium that uses volatile memory as a means of holding and accessing data. Solid state memory is based on NAND Flash chips which differs from RAM in terms of usage and volatility. Flash memory is well suited for secondary storage in many cases. Because of its small size, low power consumption, and light weight, it is frequently the secondary storage of choice, which is used for both long-term system storage and portable storage. The ability to access stored data quickly is a limiting factor in the execution speed of many important computer applications. The new technological developments regarding SSD pushed its small size and usage at an increasing pace. For example, NVMe SSDs have higher and faster data reads/writes. Optical Disks – These are an alternative to magnetic disk storage. These include various types of CDs and DVDs, in read-only, write-once, and read/write forms. For example, an inexpensive CD-ROM, 12 centimeters in diameter, stores approximately 650 MB, while a Blu-ray DVD of the same physical size can hold more than 50GB of data. DVD technology is essentially similar to CD-ROM technology in terms of size and format. The only difference is the use of a laser with a shorter light wavelength (visible red or blue-violet instead of infrared) which allows tighter packing of the disk. Each layer on a DVD can hold approximately 4.7 GB. Magnetic Tapes – Like other magnetic media, tape is nonvolatile, and, under proper storage conditions, the data can be stored indefinitely. Generally, full system backups are made to tape and are moved to off-site locations for long-term storage. Tape is stored in a cartridge using a standard format called LTO (linear tape open). When the tape is in the tape drive ready for operation, it is said to be mounted. Tape cartridges have the major advantage of convenience. They are easy to mount and dismount, and small and easy to store. Current tape cartridges can store as much as 3 TB of compressed data or 1.5 TB of uncompressed data. Cartridges with uncompressed capacities as large as 12 TB are currently in development. The technique used for this type of storage and retrieval is called data streaming. Disk Controller These are the types of disk controllers that are used in storage devices: Parallel Advanced Technology Attachment (PATA) – These were the first types of hard disk drives that made use of Parallel interface standard to connect to computers. These types of drives are referred to as the Integrated Drive Electronics (IDE) and Enhanced Integrated Drive Electronics (EIDE) drives. These drives store data by the use of magnetism. The internal structure is made of mechanical moving parts. 07 Handout 1 *Property of STI  [email protected] Page 2 of 6 IT1910 Western Digital introduced PATA drives back in 1986. Data transfer rate can go up to 133MB/s, and a maximum of two (2) devices can be connected to a drive channel. Most of the motherboards have a provision of two (2) channels, thus can connect a total of four (4) EIDE devices internally. PATA drives make use of 40- or 80-wire ribbon cable to transfer multiple bits of data simultaneously in parallel. Serial Advanced Technology Attachment (SATA) – These hard drives have replaced the PATA drives in desktop and laptop computers. The main physical difference between the two is the interface, although their method of connecting to a computer is the same. Here are some of the advantages of SATA hard disk drives over PATA: o It can transfer data faster by using serial signaling technology. o The cables are thinner and more flexible than PATA cables. o It has a 7-pin data connection with cable limit of 1 meter. o It does not share bandwidth because there is only one (1) disk drive allowed per SATA controller chip on the computer motherboard. o It consumes less power. It only requires 250 mV as opposed to PATA’s 5V. Small Computer System Interface (SCSI) – These are quite similar to IDE hard drives, but these make use of parallel interface standards developed by the American National Standards Insitute (ANSI) for attaching devices to computers. SCSI drives can be connected internally or externally. Devices that are connected in an SCSI can be daisy-chained and has to be terminated at the end through the use of a special terminating plug designed for SCSI devices. SCSI can support devices like multi-hard disk, CD-ROM, and scanner. It can also connect as many as 30 devices and peripherals by daisy chain. It is the most suitable for an entity that needs enormous capacity. Here are some of their advantages: o Faster and very reliable. o Good for 24/7 operations o Have better scalability and flexibility in arrays o Well-adapted for storing and moving large amounts of data. Serial Attached SCSI (SAS) – It is a new technology of hard disk attachment. It combines the advantages of current parallel SCSI and serial attached technology, sets serial communication as the protocol infrastructure, adopts SCSI-3 extended instruction set, and is compatible with SATA devices. It is a multi-level storage devices stack; in fact, SAS disk is a disk adopting this interface technology. Here are its characteristics: o Better Performance – It reduces the address conflicts and the deceleration of daisy chain. It provides a special signal channel to each device to ensure the maximum bandwidth; Data operation under full duplex ensures the most effective data handling capacity. o Simple Cable Link – Thinner cable matches smaller connector. o Better Scalability – It can connect more disk devices simultaneously. Performance Enhancements The hard drives, like any other peripheral devices, are connected to the computer’s buses through a controller. In the early stages, controllers were mainly used to bridge between the bus protocol and the device protocol. Here are some of the technics employed in enhancing storage devices: Larger blocks: The controller can read larger quantities of data from the disk as compared with the amount requested by the application. The additional data is stored in buffers within the controller. Pre-fetch (read ahead): The controller can identify the application’s patterns of behavior. When an application reads the sectors sequentially, the controller can read the next blocks even before they are requested. 07 Handout 1 *Property of STI  [email protected] Page 3 of 6 IT1910 Access algorithms: These are usually implemented by the operating system. These are included in the discussion to provide an elaborated explanation and a complete view of performance enhancement methods. Disk array: This is a technology that increases the size of the single disk as well as its speed, reliability, and survivability. Storage Access Algorithms There are various algorithms that are implemented by the operating system to optimize the disk access time. Some of these algorithms include the following: First Come First Served (FCFS) algorithm handles the requests based on their arrival order. The first request will be served first, followed by the second request, and so forth. First Cylinder Track: 0 Last Cylinder Track: 300 Sample Move Numbers: 75, 25, 290, 215, 50, 75, 120, 85, 245, and 98 Move Numbers arranged in FCFS: 75, 25, 290, 215, 50, 75, 120, 85, 245, and 98 Shortest Time First (STF) algorithm handles the requests based on their distance from the current head location. The first request to be handled is the closest one. First Cylinder Track: 0 Last Cylinder Track: 300 Sample Move Numbers: 75, 25, 290, 215, 50, 75, 120, 85, 245, and 98 Move Numbers arranged in STF: 75, 75, 85, 98, 120, 50, 25, 215, 245, and 290 SCAN (elevator algorithm) is where the head starts at one (1) end of the disk (usually at the first cylinder) and, while moving to the other end, handles all the requests found along the way. When the head reaches the end of the disk, it starts its movement backward following the same mechanism, only this time the sorted numbers are handled from the largest downward. First Cylinder Track: 0 Last Cylinder Track: 300 Sample Move Numbers: 75, 25, 290, 215, 50, 75, 120, 85, 245, and 98 Move Numbers arranged in SCAN: 75, 75, 50, 25, 0, 85, 98, 120, 215, 245, and 290 07 Handout 1 *Property of STI  [email protected] Page 4 of 6 IT1910 Circular SCAN (C-SCAN) is very similar to SCAN but with a minor change. The head starts at one (1) end (usually at the beginning of the disk) and, while moving to the end of the disk, handles all the requests it finds. First Cylinder Track: 0 Last Cylinder Track: 300 Sample Move Numbers: 75, 25, 290, 215, 50, 75, 120, 85, 245, and 98 Move Numbers arranged in C-SCAN: 75, 75, 50, 25, 0, 300, 290, 245, 215, 120, 98, and 85 C-LOOK algorithm is an improvement of C-SCAN. Unlike C-SCAN, which moves from the beginning of the disk to its end (even if there are no additional requests near the end), the head moves forward until it finds the request with the larger cylinder number. First Cylinder Track: 0 Last Cylinder Track: 300 Sample Move Numbers: 75, 25, 290, 215, 50, 75, 120, 85, 245, and 98 Move Numbers arranged in C-LOOK: 75, 75, 50, 25, 85, 98, 120, 215, 245, and 290 Disk Arrays A disk array (drive array) can be used to reduce the overall data access time by sharing the data among multiple disks. It can also be used to increase system reliability by providing storage redundancy. One useful type of disk array is RAID (Redundant Array of Inexpensive Disks [some people say Redundant Array of Independent Disks]). There are two (2) standard methods of implementing a disk array: Mirrored array – It consists of two (2) or more disk drives. In a mirrored array, each disk stores exactly the same data. During reads, alternate blocks of the data are read from different drives and then combined to reassemble the original data. Thus, the access time for a multiblock read is reduced approximately by a factor equal to the number of disk drives in the array. Striped array – It uses a slightly different approach in which a file segment to be stored is divided into blocks. Different blocks are then written simultaneously to different disks. This effectively multiplies the throughput rate by the number of data disks in the array. It also requires a minimum of three (3) disk drives; in the simplest configuration, one (1) disk drive is reserved for error checking. Cloud Storage Technology Cloud storage refers to remote data storage done over a computer network. Instead of using an external device connected to the computer, cloud storage makes use of storage devices located elsewhere and connected by the Internet or some other type of network connection. These are the two (2) common types of cloud storage technology: 07 Handout 1 *Property of STI  [email protected] Page 5 of 6 IT1910 Storage Attached Network (SAN) – It is a local area network intended to handle large amounts of data and provide fast transfer rates to organizational data. One of the advantages of using SAN is that it provides the user community with simple, coherent access to common corporate information. Network Attached Storage (NAS) – It represents a different approach to storing data in the network. In NAS, the storage resources are connected directly to the network, unlike SAN where the storage resources are part of the network. This approach has been around for a long time as a method for sharing files. Contrary to the SAN approach, which allows access only on a block basis, NAS relates to the whole files. References: Berekovic, M., Buchty, R., Hamann, H., Koch, D., & Pionteck, T. (2018). Architecture of computing systems – ARCS 2018 proceedings. Switzerland: Springer Nature. ComputerScience GCSE GURU. (n.d.). Storage Devices. Retrieved from https://www.computerscience.gcse.guru/theory/storage-devices on July 10, 2019 CrashCourse. (2017, July 5). Memory & Storage: Crash Course Computer Science #19 [Video file]. Retrieved from https://www.youtube.com/watch?v=TQCr9RV7twk on July 10, 2019 Dane Hartman. (2016, April 12). Computer Skills Course: Bits, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes [Video file]. Retrieved from https://www.youtube.com/watch?v=HRmfXA4EUBs on July 10, 2019 Elahi, A. (2018). Computer systems - Digital design, fundamentals of computer architecture and assembly language. Switzerland: Springer Nature. Englander, Irv. (2014). The architecture of computer hardware, systems software & networking (5th ed.). New Jersey: Wiley. freeCodeCamp.org. (2019, January 25). Memory - Intro to Computer Science - Harvard's CS50 (2018) [Video file]. Retrieved from https://www.youtube.com/watch?v=pejxLkT-wek on July 10, 2019 Hoffman, C. (2016, September 22). What is a file system, and why are there so many of them?. In HowToGeek. Retrieved from https://www.howtogeek.com/196051/htg-explains-what-is-a-file-system-and-why-are-there-so-many-of-them/ on July 10, 2019 Kamau, P. (2018, August 10). Types of Computer Hard Disk Drives. Retrieved from https://turbofuture.com/computers/Types-of-Computer-Hard-Disk- Drives on July 10, 2019 Minitool. (n. d.). A Very Detailed Introduction to Hard Drive Controller. Retrieved from https://www.minitool.com/lib/hard-drive-controller.html on July 10, 2019 Patterson, D. & Hennessy, J. (2017). Computer organization and design – The hardware/software interface. Massachusetts: Elsevier. Techquickie. (2016, July 5). The History of Computer Storage [Video file]. Retrieved from https://www.youtube.com/watch?v=-KRLWGaIunA on July 10, 2019 Techopedia. (n.d.). Definition of Storage Device. Retrieved from https://www.techopedia.com/definition/1119/storage-device on July 10, 2019 The Science Elf. (2016, January 3). Memory - Intro to Computer Science - Harvard's CS50 (2018) [Video file]. Retrieved from https://www.youtube.com/watch?v=5KtMF1jLmNM on July 10, 2019 The Slow Mo Guys. (2012, June 10). How a Hard Drive works in Slow Motion - The Slow Mo Guys [Video file]. Retrieved from https://www.youtube.com/watch?v=3owqvmMf6No on July 10, 2019 Types of Storage. (2012, July 17). In Types of Backup. Retrieved from http://typesofbackup.com/types-of-storage/ on July 10, 2019 Types of Storage Device. (n.d.). In SRM Institute of Science and Technology [PDF File]. Retrieved from http://www.srmuniv.ac.in/sites/default/files/files/MEMORY-DEVICES.pdf on July 10, 2019 Understanding file systems. (2019, May 23). In UFS Explorer. Retrieved from https://www.ufsexplorer.com/articles/file-systems-basics.php on July 10, 2019 Watson, C. (2019, February 24). Different Types of Computer Storage Devices. Retrieved from https://www.

Use Quizgecko on...
Browser
Browser