Skip to content

Latest commit

ย 

History

History
94 lines (76 loc) ยท 9.39 KB

ARM.md

File metadata and controls

94 lines (76 loc) ยท 9.39 KB

ARM Processor ๊ฐœ์š”

ARM

์˜๊ตญ์˜ ARM(Advanced RISC Machines)ํšŒ์‚ฌ๋Š” RISC ํ”„๋กœ์„ธ์„œ๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ๋ผ์ด์„ผ์‹ฑํ•˜๋Š” ํšŒ์‚ฌ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ค‘์—์„œ ARM๏ฉŒ์˜ ์ฃผ์š” ์‚ฌํ•ญ์€ ARM ์•„ํ‚ค์ณ๋ฅผ ๊ฐœ๋ฐœ ๋ฐ CPU๋ฅผ ๋””์ž์ธ ํ•ฉ๋‹ˆ๋‹ค. ARM Processor๋Š” ๋กœ๋“œ ๋ฐ ์ €์žฅ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌํ˜„ํ•˜๋ฏ€๋กœ ์ผ๋ฐ˜์ ์ธ RISC ํ”„๋กœ์„ธ์„œ์ž…๋‹ˆ๋‹ค. ๋กœ๋“œ ๋ฐ ์ €์žฅ ๋ช…๋ น์–ด๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ณ  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ช…๋ น์–ด๋Š” ๋ ˆ์ง€์Šคํ„ฐ ๋‚ด์šฉ์— ๋Œ€ํ•ด์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ARM์—์„œ ๊ตฌํ˜„๋œ Thumbยฎ, Thumb-2, NEONโ„ข, VFP ๋˜๋Š” Wireless MMX ๋ช…๋ น์–ด ๋“ฑ์˜ ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋“ค์— ์˜ํ•ด ์ •๋ฆฌ๋˜๊ณ , ์‹คํ–‰ ๋ฉ๋‹ˆ๋‹ค.

ARM๏ฉŒ๋Š” ์ง์ ‘ processor ๋ฐ˜๋„์ฒด๋ฅผ ์ œ์กฐํ•ด ํŒ๋งคํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์„ค๊ณ„ํ•œ processor๋ฅผ Intellectual property(IP) ํ˜•ํƒœ๋กœ ์ œ๊ณตํ•˜๋ฉฐ, ์ด์— ๋Œ€ํ•œ license๋ฅผ ํŒ๋งคํ•ฉ๋‹ˆ๋‹ค. ARM processor IP๋Š” ์ผ์ข…์˜ ์„ค๊ณ„๋„๋กœ, ์—ฌ๋Ÿฌ ๋ฐ˜๋„์ฒด ํšŒ์‚ฌ๋“ค์ด ์—ฌ๊ธฐ์— ํ•„์š”ํ•œ ์ฃผ๋ณ€์žฅ์น˜๋“ค์„ ์ถ”๊ฐ€ํ•ด System On Chip(Soc) ํ˜•ํƒœ๋กœ ๋ฐ˜๋„์ฒด๋ฅผ ์ œ์กฐํ•ด ํŒ๋งคํ•ฉ๋‹ˆ๋‹ค.

ARM processor์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ์„ฑ๋Šฅ์— ๋น„ํ•ด ์ „๋ ฅ ์†Œ๋น„๋Ÿ‰์ด ์ž‘๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ์Šค๋งˆํŠธํฐ์ด๋‚˜ PDA ๊ฐ™์€ ๋น„๊ต์  ํฐ computing power๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ ์ „๋ ฅ ์†Œ๋น„๋Ÿ‰์ด ์ž‘์•„์•ผ ํ•˜๋Š” ํœด๋Œ€์šฉ ๊ธฐ๊ธฐ ๋˜๋Š” ์ž„๋ฒ ๋””๋“œ ๋ถ„์•ผ์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์šฉ์–ด์ •๋ฆฌ

ARM ๊ด€๋ จ ์ž๋ฃŒ์—๋Š” ARM architecture, ARM core, ARM processor๋ผ๋Š” ์šฉ์–ด๋“ค์ด ์ž์ฃผ ๋‚˜์˜ค๋Š”๋ฐ, ๊ฐ๊ฐ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋จผ์ €, ARM architecture๋Š” ๋ช…๋ น์–ด, ๋ ˆ์ง€์Šคํ„ฐ ๊ตฌ์กฐ, ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ ๋“ฑ์˜ processor๊ธฐ๋ณธ ๊ตฌ์กฐ์™€ ๋™์ž‘์›๋ฆฌ์— ๋Œ€ํ•œ ์ •์˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ARM architecture์— ๋”ฐ๋ผ ๊ตฌํ˜„ํ•œ processor์˜ ํ•ต์‹ญ ๋ถ€๋ถ„์„ ARM core๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ด ARM core์— Cache, Memory Management Unit(์ดํ•˜ MMU), Memory Protection Unit(์ดํ•˜ MPU), Tightly Coupled Memory (์ดํ•˜ TCM), Bus Interface Unit (์ดํ•˜ BIU) ๋“ฑ์˜ ํ•ต์‹ฌ ์ฃผ๋ณ€์žฅ์น˜๋“ค์„ ์ถ”๊ฐ€ํ•ด๋†“์€ ๊ฒƒ์„ ARM processor๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ํ‘œ๋Š” ARM architecture์™€ ๊ทธ architecture๋ฅผ ๋”ฐ๋ฅด๋Š” ์ฃผ์š” ARM core ๋ฐ ๊ทธ ํŠน์ง•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Arichitecture ํŠน์ง• Core
ARMv1 ์ฒซ ARM processor 26 bit addressing ARM1
ARMv2 32 bit multiplier 32 bit coprocessor ์ง€์› ARM2
ARMv2a On-Chip cache SWAP ๋ช…๋ น ์ถ”๊ฐ€ ARM3
ARMv3 32 bit addressing CPSR๊ณผ SPSR regisger ๋ถ„๋ฆฌ Mode ์ถ”๊ฐ€ (undefined mode, abort mode) MMU ์ง€์› (๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ) ARM6 ARM7DI
ARMv3M Signed/unsigned long multiply ๋ช…๋ น ์ถ”๊ฐ€ ARM7M
ARMv4 Signed/unsigned halfwords/bytes load-store ๋ช…๋ น ์ถ”๊ฐ€ Mode ์ถ”๊ฐ€ (system mode) 26 bit addressing ์ง€์›ํ•˜์ง€ ์•Š์Œ StrongARM
ARMv4T Thumb ๋ช…๋ น ์ถ”๊ฐ€ ARM7TDMI ARM9TDMI
ARMv5T ARMv4T์˜ ํ™•์žฅํŒ ํ–ฅ์ƒ๋œ ARM๊ณผ Thumb state ๊ฐ„ ์ „ํ™˜ ๋ช…๋ น ์ถ”๊ฐ€ Digital Signal Processing(์ดํ•˜ DSP) ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•œ ๋ช…๋ น ์ถ”๊ฐ€ (Enhanced DSP ๋ช…๋ น) ARM9E ARM10E
ARMv5TEJ Java bytecode ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•œ ๋ช…๋ น ์ถ”๊ฐ€ (Jazelle ๊ธฐ์ˆ ) ARM7EJ ARM926EJ
ARMv6 Multiprocessor ๋ช…๋ น ๊ฐœ์„  Unaligned and mixed endian ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ง€์› Multimedia ๋ช…๋ น ์ถ”๊ฐ€ ARM11
<ARM architecture ๋ณ„ ํŠน์ง•๊ณผ ๊ตฌํ˜„ ARM core ์˜ˆ>

ARM core๋Š” ํŠน์ง•์— ๋”ฐ๋ผ ๋ช‡ ๊ฐœ์˜ family๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ํ‘œ๋Š” ARM core family์™€ ๊ทธ familiy์— ์†ํ•˜๋Š” ARM core์˜ ๋Œ€๋žต์ ์ธ ํŠน์ง•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ARM7 ARM9 ARM10 ARM11
ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ๊ณ„ 3 5 6 8
๋™์ž‘ ์ฃผํŒŒ์ˆ˜ (MHz) (Worst case) 125 220 ~ 250 266 ~ 325 400
์ „๋ ฅ ์†Œ๋น„๋Ÿ‰ (mW/MHz) 0.06 0.4 (+cache) 0.5 (+cache) 0.4 (+cache)
์„ฑ๋Šฅ (MIPS/MHz) 0.9 1.1 1.3 1.2
๊ตฌ์กฐ Von Neumann Harvard Harvard Harvard
<ARM core family ๋ณ„ ํŠน์ง•>

ARM architecture, ARM core, ๋˜๋Š” ARM processor ์ด๋ฆ„์— ํฌํ•จ๋œ ์•ŒํŒŒ๋ฒณ๊ณผ ์ˆซ์ž์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ARM [a] [b] [T] [D] [M] [I] [E] [J] [F] [-S] a : ์†ํ•œ ARM core family b : memory management unit, memory protection unit, cache, TCM ๊ตฌ์„ฑ T : Thumb ๋ช…๋ น ์ง€์› D : ๋””๋ฒ„๊ทธ ๊ธฐ๋Šฅ ์ง€์› M : 64 bit ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋Š” ๊ณฑ์…ˆ๊ธฐ ์ง€์› I : In-Circuit Emulator(์ดํ•˜ ICE) ๊ธฐ๋Šฅ ์ง€์› E : DSP ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•œ ๋ช…๋ น(Enhanced DSP ๋ช…๋ น) ์ง€์› J : Java bytecode ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•œ ๋ช…๋ น(Jazelle ๊ธฐ์ˆ ) ์ง€์› F : Vector Floating-Point(์ดํ•˜ VFP) ๊ตฌ์กฐ ์ง€์› -S: Electronic Design Automation(์ดํ•˜ EDA) ๋„๊ตฌ๋กœ synthesis ํ•  ์ˆ˜ ์žˆ์Œ

์˜ˆ๋ฅผ ๋“ค์–ด, ARM926EJ-S์˜ โ€œ9โ€๋Š” ARM 9 family์— ์†ํ•จ์„, โ€œ26โ€์€ MMU์™€ cache ๊ทธ๋ฆฌ๊ณ  TCM ์ง€์›์„, โ€œEโ€๋Š” DSP ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•œ ๋ช…๋ น(Enhanced DSP ๋ช…๋ น) ์ง€์›์„, J๋Š” Java bytecode ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•œ ๋ช…๋ น(Jazelle ๊ธฐ์ˆ ) ์ง€์›์„, -S๋Š” EDA ๋„๊ตฌ๋กœ synthesis ํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ARM 9 family ๋ถ€ํ„ฐ๋Š” ๋Œ€๋ถ€๋ถ„ โ€œTโ€, โ€œDโ€, โ€œMโ€, โ€œIโ€ ๊ฐ€ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐ๋Šฅ๋“ค์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ์•ŒํŒŒ๋ฒณ๋“ค์€ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

Programmer's Model

Programmer's model์ด๋ž€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์–ด, ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ, ๋™์ž‘ ๋ชจ๋“œ, ๋ ˆ์ง€์Šคํ„ฐ, ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•, ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• ๋“ฑ์ด ์ด์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด programmerโ€™s model์€ ARM architecture์— ๋”ฐ๋ผ ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

  • ๋ช…๋ น์–ด ์ง‘ํ•ฉ, ๋ช…๋ น์–ด ์ง‘ํ•ฉ ์ƒํƒœ, ๋™์ž‘ ๋ชจ๋“œ

    • ARM Thumb instruction set ARM์€ ARM instruction set๊ณผ Thumb instruction set์ด๋ผ๋Š” ๋‘ ์ข…๋ฅ˜์˜ ๋ช…๋ น์–ด ์ง‘ํ•ฉ(instruction set)์„ ์ง€์›ํ•œ๋‹ค. ARM instruction set์— ์†ํ•˜๋Š” ๋ช…๋ น์–ด๋“ค์€ ๋ชจ๋‘ 32๋น„ํŠธ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. Thumb instruction set์— ์†ํ•˜๋Š” ๋ช…๋ น์–ด๋“ค์€ ๋ชจ๋‘ 16๋น„ํŠธ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋™์ผํ•œ C์–ธ์–ด ์†Œ์Šค์ฝ”๋“œ๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ARM ๋ช…๋ น์–ด ์ง‘ํ•ฉ์œผ๋กœ ์ปดํŒŒ์ผ ํ–ˆ์„ ๋•Œ์™€ Thumb๋ช…๋ น์–ด ์ง‘ํ•ฉ์œผ๋กœ ์ปดํŒŒ์ผ ํ–ˆ์„ ๋•Œ์— ์ƒ์„ฑ๋˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋Š” ์ด์ƒ์ ์ธ ์ƒํ™ฉ์—์„œ ARM ๋ช…๋ น์–ด ์ง‘ํ•ฉ์œผ๋กœ ์ปดํŒŒ์ผ ํ•˜๋Š” ๊ฒƒ์ด Thumb ๋ช…๋ น์–ด ์ง‘ํ•ฉ์œผ๋กœ ์ปดํŒŒ์ผ ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ์ •ํ™•ํžˆ ๋‘ ๋ฐฐ ์ปค์•ผ ํ•ฉ๋‹ˆ๋‹ค

    ๋ฌผ๋ก  ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ARM ๋ช…๋ น์–ด ์ง‘ํ•ฉ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ด๋ฏธ์ง€๊ฐ€ Thumb ๋ช…๋ น์–ด ์ง‘ํ•ฉ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ด๋ฏธ์ง€๋ณด๋‹ค ๋‘ ๋ฐฐ ํฐ ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์ƒ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    • Instruction Set State ARM์€ ๋ช…๋ น์–ด ์ง‘ํ•ฉ์ด ๋‘ ๊ฐœ์ด๋ฏ€๋กœ ํ•ด๋‹น ๋ช…๋ น์–ด ์ง‘ํ•ฉ์„ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ์„ธ์„œ์˜ ์ƒํƒœ๋„ ์ด์— ์—ฐ๋™๋˜์–ด ๋‘ ๊ฐœ์ด๋‹ค. ARM ๋ช…๋ น์–ด ์ง‘ํ•ฉ์— ํ•ด๋‹นํ•˜๋Š” 32๋น„ํŠธ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ์„ธ์„œ์˜ ์ƒํƒœ๋ฅผ ARM ์ƒํƒœ(ARM state)๋ผ๊ณ  ํ•˜๊ณ  ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, Thumb ๋ช…๋ น์–ด ์ง‘ํ•ฉ์— ํ•ด๋‹นํ•˜๋Š” 16๋น„ํŠธ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ƒํƒœ๋ฅผ Thumb ์ƒํƒœ(Thumb state)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

    ๋‹น์—ฐํžˆ ARM ์ƒํƒœ์™€ Thumb ์ƒํƒœ๋Š” ํ”„๋กœ์„ธ์„œ๊ฐ€ ๋™์ž‘ํ•˜๋Š” ์ค‘๊ฐ„์— ์„œ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•˜๋‹ค. ARM ๋ช…๋ น์–ด ์ค‘์— BX๋‚˜ BLX๋ฅผ ์‚ฌ์šฉํ•ด์„œ ARM ์ƒํƒœ์—์„œ Thumb ์ƒํƒœ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋กœ ์ƒํƒœ๋ฅผ ๋ฐ”๊พธ์–ด๊ฐ€๋ฉฐ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•  ๋ฟ ๋‘ ๋ช…๋ น์–ด ์ง‘ํ•ฉ์„ ์„ž์–ด์„œ ์‚ฌ์šฉํ•  ์ˆœ ์—†์Šต๋‹ˆ๋‹ค. ARM ์ƒํƒœ์—์„œ ARM ๋ช…๋ น์–ด ์ง‘ํ•ฉ์˜ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๋‹ค๊ฐ€ Thumb ๋ช…๋ น์–ด๊ฐ€ ๋‚˜์˜ค๋ฉด ๋ฐ˜๋“œ์‹œ ํ”„๋กœ์„ธ์„œ์˜ ๋ช…๋ น์–ด ์ˆ˜ํ–‰ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    CortexA5์—์„œ๋Š” ์ถ”๊ฐ€๋กœ ๋‘ ๊ฐ€์ง€ ํ”„๋กœ์„ธ์„œ ์ƒํƒœ๊ฐ€ ๋” ์กด์žฌ ํ•˜๋Š”๋ฐ ThumbEE ์ƒํƒœ์™€ Jazelle ์ƒํƒœ์ž…๋‹ˆ๋‹ค ThumbEE ์ƒํƒœ๋Š” Thumb ๋ช…๋ น์–ด์™€๋Š” ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ์ค‘๊ฐ„์— ์‹คํ–‰์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๋ฉฐ ์ผ์ข…์˜ ๋ฐ”์ดํŠธ ์ฝ”๋“œ์˜ ํ˜•ํƒœ๋ผ๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค Jazelle ์ƒํƒœ๋Š” 1๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ •๋ ฌ๋˜๊ณ  ๊ธธ์ด๊ฐ€ ๊ฐ€๋ณ€์ ์ธ Java ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ์„ธ์„œ ๋™์ž‘ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : https://julrams.tistory.com/11?category=646625