הנכות / הרמוח תוכרעמ ףס תפש תונכתו · 2020. 7. 24. · Hardware/Software...

48
1 Dr. Martin Land — Hadassah College — Fall 2014 Overview Hardware/Software Systems and Assembly Programming ה חומררכות מע/ ה תוכנ סףת שפת ותכנוHardware/Software Systems and Assembly Programming ב סמסטר' תשע" ה

Transcript of הנכות / הרמוח תוכרעמ ףס תפש תונכתו · 2020. 7. 24. · Hardware/Software...

1Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

תוכנ ה / מע רכות חומר ה ותכנו ת שפ ת סף

Hardware/Software Systems and Assembly Programming

ה " תשע—' סמסטר ב

2Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

חומרה בתוכנית הלימודים בהדסה מ ער כות ספרתיות•

שיטות פורמליות ואבני היסוד של חומרה•

תוכנה ו תכנות שפת ס ף / מערכות חומ רה • מ אורגן ופועלPCכיצד מ חש ב •

מ ער כות הפע לה•שירותי תיווך בין חומרת המחשב והמשתמש•

אר כי ט ק טו רות של מחשב י ם•ביצועים במחשבים ושיטות מודרניות בתכנון מחשבים•

תקשורת•חיבור בין מחשבים בתוכנה ובחומרה •

3Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

?כיצד לימוד ארכ יטק טור ה עוזר ל מתכנ ת :ת/הבנת פעולות החומרה ב ע יבוד תוכנה עוז רת למתכנת

לכתוב תוכניות מהירות וקוד יעיל יותר1.

להבין את ה פעולות של מ ערכות הפעלה 2.

להבין את ה פעולות וה שיקולים של ה מ ה דרי ם 3.

כמו ( וקוד שמיו עד למע רכות משובצות hardware driversלכתוב 4.

)מש ח קים למכשירים ה ניידי ם

ולכתוב קוד שמשתלב ע ם high-tech -למ צו א מקום טוב בתחו ם ה 5.

חו מ ר ה

4Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

דוגמא למס ק נ ה למתכנ ת מארכיט ק טור ה C code for calculating 10!

Compiled code runs in 250 nanoseconds on 4 GHz Pentium 4Efficient assembly language program runs 30% fasterSpeed-up important to userUnderstanding why important to programmer

main(){ int i,j = 10; i = factorial(j); } int factorial(n) int n; { if (n == 0) return 1; else return n * factorial(n-1); }

5Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Basic Computer

Organization

6Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Western Computing Before 1940Mechanical device for performing arithmetic

Mechanical Adding MachineAdd, Subtract, Multiply, Divide for business recordsBased on work by Charles Babbage (1821)

Slide RuleMultiply, Divide, Logarithm, TrigonometryBased on work by Napier, Gunter, Oughtred (1614)

7Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Slide Rule ArithmeticMultiply / Divide

Logarithmic scales C and D

Examples: 2 × 15 = 302 × 2 = 4

( ) ( ) ( )log log logxy x y= +

distance = log (2)distance = log (3)

8Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Features of Slide Rule Calculating 

Analog computation

Based on lengths of scales

User is operating system

Keeps track of data

Performs each operation

Keeps track of steps

Reads off result

http://arch.ced.berkeley.edu/kap/1998_images/Background/slide%20rule.JPG

9Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

End of Slide Rule Calculating Before 1975

Slide rule was standard calculating instrument for scientists

In 1970US astronaut flying to moon finished complex calculation by slide

rule faster than NASA mainframe in Houston

In mid-1970sMicroprocessor-based calculators and personal computers introduced

In 1980Slide rules no longer manufactured

10Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Von Neumann's "Computing Instrument"John von Neumann and others specified (1947) features for an

electronic digital computer:

Digital computation in Arithmetic/Logic Unit (ALU)

Internal storage of data

Programmable via standard set of instructions

Internal storage of program

Input/Output

Automatic sequencing of instruction execution

ArithmeticLogicUnit

(ALU)

input memory output

control

data/instruction path

control path

11Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Von Neumann Example — 1

Programming:

a = 3b = 5c = a + bprint c

ArithmeticLogicUnit

(ALU)

input memory output

control

data/instruction path

control path

print c; c = a + b; b = 5; a = 3programming

12Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Von Neumann Example — 2

Automatic Execution:

ALU ← 3ALU ← 5ADDMemory ← 8

ArithmeticLogicUnit

(ALU)

input memory output

control

5

3

8

data/instruction path

control path

13Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Von Neumann Example — 3

Output:

Output ← c = 8 ArithmeticLogicUnit

(ALU)

input memory output

control

8

data/instruction path

control path

14Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Memory Hierarchy

Bank Wallet Pocket Hand

HardDisk

Main Memory(RAM) Cache Register

All Filesand Data

Running Programsand Data

Next FewInstructionsand Data

CurrentData

15Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Organizing the Pieces — 1

mainmemory

memorycontrol

Main Memory Unit

cachememory

cachecontrol

Cache Memory Unit

ArithmeticLogicUnit

(ALU)

registermemory

processorcontrol

CPU

input

output

I/Ocontrol

I/O System

long-termstorage

network

memory

Processor package

16Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Organizing the Pieces — 2Physical components of von Neumann machine organized into 3

groups:

Microprocessor – Central Processing Unit (CPU) Arithmetic/Logic Unit (ALU)Registers – Small and fast memory elementsControl Unit – Instruction decoding/execution Internal cache (optional)

Main Memory Unit (MMU)Stores data and programLarge Random Access Memory (RAM)External cache (optional)

Input/Output System (IOS)Controls peripheral equipmentInterface with the userInterface with long-term data storage

17Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Basic Types of Digital SystemsCombinational Logic Gates

Output = Boolean function of InputsAND, OR, NOT, XOR, coders, decoders

Sequential Logic GatesOutput = Boolean function of Inputs and previous OutputsRegisters, Flip-Flops, Shift Registers, Counters, State Machines

Bill GatesControls all other digital systems

18Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Physical Components of a Digital ComputerArithmetic/Logic Unit (ALU)

Add, Subtract, Multiply, Divide, AND, OR, XOR, Shift, Compare Combinations of aboveBuilt from combinational and sequential logic

MemoryMain Memory

Random Access Memory (RAM)Internal RegistersRead Only Memory (ROM)

Built from sequential logic devices

Input/Output and ControlBuilt from

Combinational logic (coders and decoders) Sequential logic (state machines)

19Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

ALU Example: Full Adder 

01110

10001

01101

01011

11111

0

0

0

cout

0

0

0

cin

1

1

0

s

01

10

00

ba

out in in

in

c a b a c b cs a b c

= + +

= ⊕ ⊕

Full Adder

a b cin

cout s

20Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Memory Example:   Latching Register

Level-Sensitive LatchWhen Level = 1, Q = D (a change in D causes a change in Q)When Level = 0, Q = stored value (changes in D do not effect Q)

Edge-Sensitive LatchWhen CLK makes 0-to-1 transition, latch stores DQ = stored value (changes in D do not effect Q until next CLK

transition)Registers and Random Access Memory (RAM) built from latches

D

Level

QD

CLK

Q

Level-Sensitive Latch Edge-Sensitive Latch

21Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

General Registers

Register holds n-bit number

Read state — read n bits on Qi

Write state — write n bits on Di

...RegisterSelect

...D0D1

Dn - 1

Q0Q1

Qn - 1

S0S1

Sr - 1

Register 0

Register 1

Register 2

Register 3

Register 4

Register

...

DecodeLogic

...read/write

r −2 1

R = 2r

Independentregistersr select lines

choose register

22Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Data Reference — Finding Stored Data

Long term storage

Complex organization depends on hardware design

Usually requires OPERATING SYSTEM support

Main memory (RAM)

Random access based on a PHYSICAL ADDRESS

Every byte is stored at an address

Cache

Same as main memory

Registers

Random access based on REGISTER NAMES in CPU

Information stored in a named register

Data stored is width of standard integer

23Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Physical Memory OrganizationPhysical memory (main memory — RAM)

Real device (circuit) to store data

Stores one byte at each physical address

Physical Address = AN-1 AN-2 … A1 A0

N-bit address space

2N addresses from 0 to (2N-1)

Flat address CPU

Programs use physical addresses

Logical address CPU

Programs use some other address format

CPU converts logical address to physical address before RAM access

Data Byte 11111…111 Data Byte 11111…110 Data Byte 11111…101 Data Byte 11111…100

… … Data Byte 00000…111 Data Byte 00000…110 Data Byte 00000…101 Data Byte 00000…100 Data Byte 00000…011 Data Byte 00000…010 Data Byte 00000…001 Data Byte 00000…000

Memory Location Address

24Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Segmented Memory Addressing — 1

PhysicalBase

Address

Offset(Relative Address)

Segment

AddressedByte

PhysicalAddress

RAMRelative addressing

25Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Segmented Memory Addressing — 2Segment

Block of data bytes in memory

Physical base address — physical address of first byte in segment

Offset

Relative address

Location of byte relative to start of segment

Physical address = Physical base address + Offset

Programs use logical address for memory reference

Logical address written as SEGMENT:OFFSET

SEGMENT and OFFSET stored in separate registers

CPU converts logical address to physical address for RAM access

26Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Register NamingRegisters are part of CPU design

Features determined by CPU designers

General Purpose (GP) registersHold data for instructionsWidth of data is width of standard integerUsually similar to one anotherReferenced by names or numbers

Standard names: R0, R1, … , R15Intel names: EAX, EBX, ECX, EDX,

ESI, EDI, EBP, ESP, EIP

Special Purpose registersMachine status registersOperating system registers

27Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Example — 8086 Microprocessor

AddressBus

Controller

Decoderand

ControlALU

Main Memory

System Bus

DataBus

Controller

PhysicalAddress

DataControl

PhysicalAddress

Unit

GeneralRegisters

AddressRegisters

CPU

Logical Address

Physical Address

28Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Simplified PC Organization — 1

זיכרון ר א שי

Main Memory(RAM)

א פיק מת אם Bus Adapter

א פי ק זיכ ר וןMemory Bus

פ לט / א פי ק קלט I/O Bus

פ לט / בקר קלט I/O Controller

פ לט / בקר קלט I/O Controller

פ לט / בקר קלט I/O Controller

Disk ממשק משתמש

רשת תקש ורת communications

network

זיכרון מט מוןcache memory

ליבת עיבוד ואוגרים

Processor Coreand

Registers

) ליבות-דו ( י חידת החי שוב המר כזי Dual Core Central Processing Unit (CPU)

ליבת עיבוד ואוגרים

Processor Coreand

Registers

Front Side Bus

29Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Computer Organization — 2Central Processing Unit (CPU)

Microprocessor core(s)

Includes ALU, internal registers, control

Cache MemoryA copy of a small part of Main Memory

Allows fast access to important memory data

Main MemoryRandom Access Memory

Stores data and program

Bus AdapterConnects CPU to Memory Bus and I/O Bus

I/O ControllerConverts I/O bus data to peripheral device instructions

30Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Program Load

Load operation

Copy program

זיכרון ר א שי

Main Memory(RAM)

א פיק מת אם Bus Adapter

א פי ק זיכ ר וןMemory Bus

פ לט / א פי ק קלט I/O Bus

פ לט / בקר קלט I/O Controller

פ לט / בקר קלט I/O Controller

פ לט / בקר קלט I/O Controller

Disk ממשק משתמש

רשת תקש ורת communications

network

זיכרון מט מוןcache memory

ליבת עיבוד ואוגרים

Processor Coreand

Registers

) ליבות-דו ( י חידת החי שוב המר כזי Dual Core Central Processing Unit (CPU)

ליבת עיבוד ואוגרים

Processor Coreand

Registers

Front Side Bus

31Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Instruction FetchSend instruction address

Copy instruction

זיכרון ר א שי

Main Memory(RAM)

א פיק מת אם Bus Adapter

א פי ק זיכ ר וןMemory Bus

פ לט / א פי ק קלט I/O Bus

פ לט / בקר קלט I/O Controller

פ לט / בקר קלט I/O Controller

פ לט / בקר קלט I/O Controller

Disk ממשק משתמש

רשת תקש ורת communications

network

זיכרון מט מוןcache memory

ליבת עיבוד ואוגרים

Processor Coreand

Registers

) ליבות-דו ( י חידת החי שוב המר כזי Dual Core Central Processing Unit (CPU)

ליבת עיבוד ואוגרים

Processor Coreand

Registers

Front Side Bus

32Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Load DataSend address of input data

Copy data to register

זיכרון ר א שי

Main Memory(RAM)

א פיק מת אם Bus Adapter

א פי ק זיכ ר וןMemory Bus

פ לט / א פי ק קלט I/O Bus

פ לט / בקר קלט I/O Controller

פ לט / בקר קלט I/O Controller

פ לט / בקר קלט I/O Controller

Disk ממשק משתמש

רשת תקש ורת communications

network

זיכרון מט מוןcache memory

ליבת עיבוד ואוגרים

Processor Coreand

Registers

) ליבות-דו ( י חידת החי שוב המר כזי Dual Core Central Processing Unit (CPU)

ליבת עיבוד ואוגרים

Processor Coreand

Registers

Front Side Bus

33Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Store Result

Copy data to RAM

Send address to store output dataזיכרון ר א שי

Main Memory(RAM)

א פיק מת אם Bus Adapter

א פי ק זיכ ר וןMemory Bus

פ לט / א פי ק קלט I/O Bus

פ לט / בקר קלט I/O Controller

פ לט / בקר קלט I/O Controller

פ לט / בקר קלט I/O Controller

Disk ממשק משתמש

רשת תקש ורת communications

network

זיכרון מט מוןcache memory

ליבת עיבוד ואוגרים

Processor Coreand

Registers

) ליבות-דו ( י חידת החי שוב המר כזי Dual Core Central Processing Unit (CPU)

ליבת עיבוד ואוגרים

Processor Coreand

Registers

Front Side Bus

34Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Display Result

Displayoperation

Data to display

זיכרון ר א שי

Main Memory(RAM)

א פיק מת אם Bus Adapter

א פי ק זיכ ר וןMemory Bus

פ לט / א פי ק קלט I/O Bus

פ לט / בקר קלט I/O Controller

פ לט / בקר קלט I/O Controller

פ לט / בקר קלט I/O Controller

Disk ממשק משתמש

רשת תקש ורת communications

network

זיכרון מט מוןcache memory

ליבת עיבוד ואוגרים

Processor Coreand

Registers

) ליבות-דו ( י חידת החי שוב המר כזי Dual Core Central Processing Unit (CPU)

ליבת עיבוד ואוגרים

Processor Coreand

Registers

Front Side Bus

35Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Machine Language Instructions Instruction

Describes one OPERATION and its OPERANDS

Operation Action performed on data

Operand SOURCE — input data for operationDESTINATION — output result of operation

Operand descriptionADDRESSING MODE

Location of data in register, memory, or instructionDATA TYPE

Integer, Long, Floating Point, Decimal, String, Constant, etc.

36Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Instruction Set Architecture General machine instruction is data structure:

Typical machine instruction:ADD destination, source_1, source_2destination ← source_1 + source_2

Language is range of data structure INSTRUCTION for:

Operation ∈ {legal actions}

Operand ∈ {legal Addressing Modes}

Operand...OperandOperandOperation

37Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Typical OperationsData transfer

Load (r ← m), store (m ← r), move (r/m ← r/m), convert data types

Arithmetic/Logical (ALU)Integer arithmetic (+ – × ÷ compare shift) and logical (AND, OR, NOR, XOR)

DecimalInteger arithmetic on decimal numbers

Floating point (FPU)Floating point arithmetic (+ – × ÷ sqrt trig exp …)

StringString move, string compare, string search

ControlConditional and unconditional branch, call/return, trap

Operating SystemSystem calls, memory management instructions

MultimediaPixel operations, compression/decompression operations

38Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

ImmediateConstant = IMM = numerical value coded into instruction

Register operandsregister name = fast storage location in CPUREGS[register name] = value stored in registerREGS[EBX] = value stored in register EBX = 00001230

Memory operandsaddress = slow storage location in main memory (RAM)MEM[address] = value stored in memory = *(address)MEM[00001234] = value stored at address 00001234 = 45

Effective Address (EA) — pointer arithmeticREGS[EBX] ← &(variable) = 00001230MEM[REGS[EBX]+4] = *(&(variable)+4)

= *(REGS[EBX]+4)= *(1230+4) = *(1234) = 45

Addressing Modes for Operands

00001230

EBX

45

00001234

39Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Variables, Pointers, Memory, RegistersVariable allocation

int a&a = address_a

Allocation assigns pointer to some address in RAMAddress depends on program structure and OS

Assignmenta = 1

[address_a] = *(address_a) ← 1Stores value 1 into RAM at address allocated to variable a

40Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Software Hierarchies

Application Programs

Operating System Programming Layers

Machine Language

High-Level Language Instruction Layers Machine Language

41Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Machine LanguageMachine Language = processor instruction set

Elementary operations for CPUCPU reads instructions as binary codes

Assembly LanguageUser-friendly form of machine languageEach binary code is represented in words

INC EBX ≡ 01000011 ≡ 43 ≡ REGS[EBX] ← REGS[EBX]+1

Instruction Set Architecture (ISA)Considerations for choosing a particular set of instructions"Family" of processors using same instruction set

Pentium, P-II, P-III, P-4, Centrino, Core, i5, i7, Atom

42Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

High‐Level LanguagePowerful instructions and syntax

Control blocksFunction callsData structuresObjects

High-level program compiled to machine code1 line of high-level code compiled to many lines of machine codeCompiler efficiency as important as good coding

43Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Program Loaded into MemoryProgram data

ConstantsVariablesTablesStructures

Procedures / functionsControl blocksData access — load / storeCalculation — arithmetic / logic

Machine LanguageInstructions

Compiled from high level program

Assembled from assembly language

program

DataStructured by

relative location

Main Memory

44Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Running Machine Language ProgramProgram list

Instruction 1Instruction 2Instruction 3Instruction 4Instruction 5Instruction 6

CPUFetches next instruction in listDecodes fetched instructionExecutes decoded instruction

Instruction 1

Instruction 2

Instruction 3

Instruction 4

Instruction 5

Abyte

A+1byte

A+2byte

A+3byte

A+4byte

A+5byte

A+6byte

A+7byte

A+8byte

A+9byte

A+10byte

A+11byte

Instructions in RAM

Address

45Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Programming LayersMachine Language

CPU can only run machine language codeCPU switches between application code and operating system code

Operating SystemStores, loads, and runs executablesOrganizes hardware resources and permits sharing Organizes user accessOS code

Mostly compiled from high-level codeParts written in machine language

Application ProgramsIndividual task-oriented user programs

46Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Assembler ProgramsProgrammer codes

Labels, mnemonics, operands, and comments

Assembler does all routine workRemoves comments and mnemonicsProvides HEX code translationsHandles line addressesResolves internal references

Output called Object CodeMay contain UNRESOLVED EXTERNAL REFERENCES

Branches to labels in external modules

Linker produces final executable codeResolves external references

47Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Types of General Purpose ComputerGeneral Purpose Computer

Based on von Neumann architectureOperating System and I/O System permit users to write, store and

run Application ProgramsWorkstation

Optimized for single user running input-intensive software for graphical presentation

File ServerOptimized for multiple users running output-intensive networking

softwareMainframe

Optimized for multiple users running input/output-intensive networking software (storage and transaction)

High availability, reliability, scaling, securityMay support multiple OS

48Dr. Martin Land — Hadassah College — Fall 2014OverviewHardware/Software Systems and Assembly Programming

Enhancements for High Power Computers

Multiple graphics processorsMemory management processorsCommunications processorsSpecial processors for Java, encryption, error detection

Single graphic processorMemory management on CPU and PCI

Specialized Hardware

High efficiency specialized versions of Unix-inspired OSWindows/LinuxOperating

System

Multiple I/O controllers for multiple simultaneous data flowsHigh speed I/O channels

Single PCI I/O controller integrated with main board

Input/Output System

Fast (expensive) chip technology64-bit RISC multiprocessor system

4 core (Pentium type) 64-bit CISC processor

CPU Architecture

$10,000 Workstation$1000 PC

CISC (Complex Instruction Set Computer) — old style (pre-1990) machine languageRISC (Reduced Instruction Set Computer) — new style (post-1990) machine languagePCI (Peripheral Component Interface) — I/O controller on most PC systems