View
Real Time Clock - RTC : 2^15Hz = 32768 Hz = 32.768 kHz = 1 Sec
RTC를 2^15로 나누면 1Hz 에 1 Sec인 Clock을 만들어 1초를 Count할 수 있다.
타이머는 Task Scheduler 등의 작업에서 App에게 시간 배정으로 동시에 작업을 수행하도록 만들기 위해 사용된다.
( event Interrupt를 통해 Count한 1ms의 경과를 CPU에게 알린다. )
Private Timer
Timer Load Register, Timer Count Register, Timer Control Register, Timer Status Register로 구성되어있다.
- Timer Load Register
초기값에 해당하는 값.
- Timer Count Register
Load Register에 저장된 값을 Count Register로 가져와 신호에 따라 값을 1씩 감소시킨다. 말 그대로 count하는 과정.
- Timer Control Register
Prescaler ( 몇 Hz마다 Count할 지 결정 )
AutoTimer ( Count가 0까지 Decrement 된 후 다시 Load Reg에서 값을 불러와 Count를 반복할 지 결정 )
Timer enable ( on / off )
의 정보를 Set할 수 있다.
- Timer Status Register: only 1 Bit
Count Register가 0이 될 때 Status Register가 1이 된다. : HW적으로 구현되어있음.
Timer가 1Hz의 신호를 여기에서 받아온다.
-> Timer Status Register에 1을 넣어 0으로 초기화시켜준다. : SW적으로 구현.
초기화시켜주지 않으면 계속 남아있게된다. ( Sticky Register )
Prescaler
Timer의 Time Interval을 결정한다. -> 자기가 원하는 값을 넣어 1Sec의 2의 지수승에 해당하는 값을 만들어낼 수 있다.
Frequency = periCLK / Prescaler
Time Interval = loadValue ( Count 할 값 ) x ( Source Timer의 주기 = periCLK ) = loadValue / Frequency
= ((Prescaler + 1 ) x ( loadValue + 1 )) / periCLK ( 1을 더해주는건 0~255를 1~256으로 만들어 쉬운 계산을 위함임)
// 이 시리즈의 글들은 고려대학교의 Computer System Design 과목 ( COSE321 ) 을 수강하며 제가 공부한 내용입니다.
// 노트필기를 바탕으로 정리하여 올리고 있으므로, 부정확한 정보가 있을 수도 있습니다.
// 추후에 종강을 하면 워터마크를 삽입한 최종노트 PDF를 첨부할 계획입니다.
'학부생 CS > 컴퓨터 시스템 설계' 카테고리의 다른 글
Computer System Design - 8 : Interrupt Input (0) | 2019.05.20 |
---|---|
Computer System Design - 7 : Thumb, Thumb2 (3) | 2019.05.20 |
Computer System Design - 5 : Handling IO Device in Software (0) | 2019.05.20 |
Computer System Design - 4 : Memory Map (3) | 2019.04.06 |
Computer System Design - 3 : Assembly instruction (0) | 2019.03.28 |