Lecture 3. APIC ID Prof. Taeweon Suh Computer Science Education Korea University COM509 Computer Systems.

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

Computer Architecture
Computer Science Education
System Integration and Performance
8086 [2] Ahad. Internal! External? 8086 vs _bit Data Bus 20_bit Address 8_bit Data Bus 20_bit Address Only external bus of 8088 is.
Dr. Rabie A. Ramadan Al-Azhar University Lecture 3
PROGRAMMABLE PERIPHERAL INTERFACE -8255
Microprocessor Dr. Rabie A. Ramadan Al-Azhar University Lecture 4.
Programmable Interval Timer
Processor System Architecture
CS4315A. Berrached:CMS:UHD1 Operating Systems and Computer Organization Chapter 4.
FIU Chapter 7: Input/Output Jerome Crooks Panyawat Chiamprasert
Types of Parallel Computers
1 COMP541 Interrupts, DMA, Serial I/O Montek Singh April 24, 2007.
CHAPTER 9: Input / Output
Computer Organization and Assembly language
Group 5 Alain J. Percial Paula A. Ortiz Francis X. Ruiz.
Mahesh Wagh Intel Corporation Member, PCIe Protocol Workgroup.
CS-334: Computer Architecture
One physical processor – may consist of one or more cores One processing unit – may consist of one or more logical processors One logical computing.
Lecture 5. AT91 - Memory Map, Timers, and AIC -
Khaled A. Al-Utaibi  Intel Peripheral Controller Chips  Basic Description of the 8255  Pin Configuration of the 8255  Block Diagram.
Intel
Chapter 1-3 The Ethernet LAN. Ethernet The networking protocol used in most modern computer networks is Ethernet. Ethernet is a CSMA/CD LAN protocol.
Interrupts. What Are Interrupts? Interrupts alter a program’s flow of control  Behavior is similar to a procedure call »Some significant differences.
Institute of Technology Sligo - Dept of Computing Semester 2 Chapter 10 IP Addressing.
COMPUTER ORGANIZATIONS CSNB123 NSMS2013 Ver.1Systems and Networking1.
CHAPTER 9: Input / Output
CPU Computer Hardware Organization (How does the computer look from inside?) Register file ALU PC System bus Memory bus Main memory Bus interface I/O bridge.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
Khaled A. Al-Utaibi  Interrupt-Driven I/O  Hardware Interrupts  Responding to Hardware Interrupts  INTR and NMI  Computing the.
Top Level View of Computer Function and Interconnection.
Lecture 4. ARM Instructions #1 Prof. Taeweon Suh Computer Science Education Korea University ECM586 Special Topics in Embedded Systems.
Computer Organization - 1. INPUT PROCESS OUTPUT List different input devices Compare the use of voice recognition as opposed to the entry of data via.
EEE440 Computer Architecture
Hyper Threading Technology. Introduction Hyper-threading is a technology developed by Intel Corporation for it’s Xeon processors with a 533 MHz system.
12/16/  List the elements of 8255A Programmable Peripheral Interface (PPI)  Explain its various operating modes  Develop a simple program to.
MULTICORE PROCESSOR TECHNOLOGY.  Introduction  history  Why multi-core ?  What do you mean by multicore?  Multi core architecture  Comparison of.
Dr Mohamed Menacer College of Computer Science and Engineering, Taibah University CE-321: Computer.
Semester 2v2 Chapter 8: IP Addressing. Describe how IP addressing is important in routing. IP addresses are specified in 32-bit dotted-decimal format.
Lecture 4 General-Purpose Input/Output NCHUEE 720A Lab Prof. Jichiang Tsai.
Different Microprocessors Tamanna Haque Nipa Lecturer Dept. of Computer Science Stamford University Bangladesh.
CS4315A. Berrached:CMS:UHD1 Operating Systems and Computer Organization Chapter 4.
IT Essentials 1 v3 Module 4 JEOPARDY IT Essentials 1 RouterModesWANEncapsulationWANServicesRouterBasicsRouterCommands RouterModesWANEncapsulationWANServicesRouterBasicsRouterCommands.
Chapter 3 System Buses.  Hardwired systems are inflexible  General purpose hardware can do different tasks, given correct control signals  Instead.
Lecture 3 Dr. Muhammad Ayaz Computer Organization and Assembly Language. (CSC-210)
LonWorks Introduction Hwayoung Chae.
Lecture 2. General-Purpose Computer Systems Prof. Taeweon Suh Computer Science Education Korea University ECM586 Special Topics in Embedded Systems.
1 Chapter 1 Basic Structures Of Computers. Computer : Introduction A computer is an electronic machine,devised for performing calculations and controlling.
Homework Reading Machine Projects Labs
Anton Burtsev February, 2017
ARP and RARP Objectives Chapter 7 Upon completion you will be able to:
CHAPTER 4 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
Dr. Michael Nasief Lecture 2
8259 Chip The Intel 8259 is a family of Programmable Interrupt Controllers (PIC) designed and developed for use with the Intel 8085 and Intel 8086 microprocessors.
University of Gujrat Department of Computer Science
Lecture 18 Interrupt 동국대학교 홍유표.
Interrupts.
Operating Systems Lecture 3.
The Programmable Peripheral Interface (8255A)
Presentation transcript:

Lecture 3. APIC ID Prof. Taeweon Suh Computer Science Education Korea University COM509 Computer Systems

Korea Univ APIC IDs Physical ID  APIC ID (0xFEE0_0020) register in Local APIC  8-bit xAPIC ID or 32-bit x2APIC ID 8-bit xAPIC ID is set by hardware but, can be changed by software 32-bit x2APIC ID is set by hardware and can’t be changed by software Logical ID  LDR (Logical Destination Register, 0xFEE0_00D0) 8-bit logical xAPIC ID is assigned by software 32-bit logical x2APIC ID is automatically generated by hardware upon entry to x2APIC Mode and is deposited in the read-only LDR 2

Korea Univ Physical ID Assignment in xAPIC Mode 3 On the trailing edge of the reset signal, the processor samples a processor design-specific set of inputs to determine  Cluster ID  Physical processor ID (also referred to as the processor package ID)  Core IDs (if it is a multicore processor package)  Logical processor IDs (if HT is supported)

Korea Univ APIC ID Register (Physical ID) 4 Max # of APICs 15 (0xF is for broadcasting) 255 (0xFF is for broadcasting)

Korea Univ Cluster ID The Cluster ID identifies what cluster of processors the physical processor is a member of The processor may be assigned a cluster number of 0, 1, 2, or 3  Address signal line [12:11]# are sampled on the trailing edge of reset to determine the cluster ID 5

Korea Univ Physical/Logical Processor and Local APIC ID Assignment 6 Four Pentium 4 Xeon MP processor Example

Korea Univ Misc 7 The BIOS and/or the OS can change the xAPIC ID at any time after the initial IDs are automatically assigned at startup time  Software must ensure that the xAPIC ID for each Local APIC is unique In an HT-capable processor, the Local APIC associated with each logical processor is automatically assigned a unique xAPIC ID When a CPUID request type 1 is executed, only the xAPIC ID of the primary logical processor (logical processor 0) is returned in the EBX register

Korea Univ /proc/cpuinfo in Linux 8

Korea Univ /proc/cpuinfo in Linux The /proc/cpuinfo file contains a paragraph of data for each processor on the system. There are six entries in the /proc/cpuinfo description that applies to the multi-core and Hyper-Threading Technology detection: processor, physical id, siblings, core id, cpu cores and vendor id.  The processor entry contains a unique identifier for this logical processor.  The physical id entry contains a unique identifier for each physical package.  The core id entry holds a unique identifier for each core.  The siblings entry lists the number of logical processors that exist on the same physical package.  The cpu cores entry contains the number of cores that exist on the same physical package. All logical processors that have the same physical id share the same physical socket. Each physical id represents a unique physical package. Siblings indicate the number of logical processors that exist on this physical package. They may or may not support Hyper-Threading Technology. Each core id represents a unique processor core. All the logical processors with the same core id exist on the same processor core. If more than one logical processor has the same core id, and the same physical id, then the system supports Hyper-Threading Technology. If there are two or more logical processors with the same physical id, but different core ids, then this represents a multi-core processor. Multi-core support is also indicated by the cpu cores entry. 9

Korea Univ /proc/cpuinfo in Linux As an example, if a system contained two physical packages, each contains two processor cores that supported HT Technology, the /proc/cpuinfo file would contain this data. This example shows that logical processors 0 & 4 reside on core 0, physical package 0. This indicates that logical processors 0 & 4 are enabled for HT Technology. The same observation can be made for logical processors 2 & 6 on core 1, package 0, logical processors 1 & 5 on core 2, package 1, and logical processors 3 & 7 on core 3, package 1. The system is enabled for HT Technology because two logical processors share the same core. Multi-core support can be determined in two ways. Since cores 0 & 1 exist on package 0, and cores 2 & 3 exist on package 1, this is a multi-core system. Also, the cpu cores entry is 2, which indicates that two cores reside in the physical package. It is a multi- processor system because there are two packages. 10

Korea Univ Local APIC Addressing Physical addressing: Single Target  If an inbound message indicates physical addressing (the Destination Mode bit in the message = 0), the target of the message is specified by In xAPIC Mode: the 8-bit xAPIC ID in the message In x2APIC Mode: the 32-bit x2APIC ID in the message  The interrupt message is accepted only by the Local APIC whose xAPIC ID or x2APIC ID matches the ID in the message 11

Korea Univ Local APIC Addressing Logical addressing: Multiple Targets  If an inbound message indicates logical addressing (the Destination Mode bit = 1), the targets of the message are specified by In xAPIC Mode: the 8-bit logical address in the message In x2APIC Mode: the 32-bit logical address in the message  Upon receipt of the message, the Local APICs interpret the address as follows xAPIC Mode: The Local APICs interpret the message’s logical address based on the topology model indicated in their Destination Format Registers (DFRs)  1111b: Flat Model (in Intel manual)  0000b: Cluster Model x2APIC Mode: Only Cluster Model is used 12

Korea Univ Flat Model Not supported in x2APIC Each of the 8 bits in the message’s logical address field acts as a selector bit permitting the message to select up to 8 Local APICs by setting the appropriate bits to one in the message’s logical address If the message’s logical address is B3h ( ), for example, it selects 5 APICs 13

Korea Univ Flat Cluster Model This addressing scheme is only supported on the Pentium and P6 Processors The high-order 4-bits of the message’s logical address contains the target Cluster ID (1 out of 15, Cluster ID Fh is reserved for broadcasting), while the lower 4-bits are used as select bits to select up to 4 Local APICs 14

Korea Univ Hierarchical Cluster Model This is the only logical addressing model supported in x2APIC Mode (?) While the Flat Cluster model is limited to no more than 15 Local APICs due to electrical loading constraints (because all of the Local APICs reside on a single APIC bus), this model assumes that up to 4 Local APICs reside on each side FSB A hierarchical network is created by including a Cluster Routing Device on each external interface The Cluster Routing Device uses the target cluster ID in the message’s logical address to route the message to the target cluster’s FSB or QPI Upon message receipt, a potential target Local APIC compares the upper 4-bits of the message’s logical address with bits [31:28] of the Logical xAPIC ID field in its LDR to determine if it’s a member of the target logical cluster  Assuming it is, the Local APIC ANDs bits [27:24] of the message’s logical address with bits [27:24] of the Logical xAPIC ID field in its LDR 15

Korea Univ MCM (Multi-Chip Module) Processor dies in the same package  Core 2 Quad: 2 dual-core dies packaged in a MCM  Pentium D: 2 single-core dies packaged in a MCM  Pentium Extreme Edition: 2 single-core dies packaged in a MCM 16 Intel Clovertown (Xeon 5300)