KR100662810B1 - Cam을 이용한 명령 스케줄러 - Google Patents

Cam을 이용한 명령 스케줄러 Download PDF

Info

Publication number
KR100662810B1
KR100662810B1 KR1020050125427A KR20050125427A KR100662810B1 KR 100662810 B1 KR100662810 B1 KR 100662810B1 KR 1020050125427 A KR1020050125427 A KR 1020050125427A KR 20050125427 A KR20050125427 A KR 20050125427A KR 100662810 B1 KR100662810 B1 KR 100662810B1
Authority
KR
South Korea
Prior art keywords
cam
block
period information
cam block
timer
Prior art date
Application number
KR1020050125427A
Other languages
English (en)
Inventor
최성대
유회준
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020050125427A priority Critical patent/KR100662810B1/ko
Application granted granted Critical
Publication of KR100662810B1 publication Critical patent/KR100662810B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

본 발명은 CAM을 이용한 명령 스케줄러에 관한 것으로서, 여러 개의 장치로부터 각각 미리 지정된 독립적인 주기마다 명령을 보내기 위한 스케줄러를 하나의 타이머와 CAM을 이용하여 구현함으로써 저전력으로 여러 개의 장치의 명령을 스케줄링할 수 있을 뿐만 아니라 면적을 획기적으로 줄일 수 있는 이점이 있다.
스케줄러, CAM, 타이머, 센서, 명령, ID, 주기, 저전력

Description

CAM을 이용한 명령 스케줄러{COMMAND SCHEDULER USING CAM}
도 1은 본 발명에 의한 CAM을 이용한 명령 스케줄러를 설명하기 위한 블록구성도이다.
도 2는 본 발명에 의한 CAM을 이용한 명령 스케줄러의 구체적인 실시예를 나타낸 블록구성도이다.
도 3은 본 발명에 의한 CAM을 이용한 명령 스케줄러의 타이머 블록에서 생성되는 신호를 나타낸 타이밍도이다.
- 도면의 주요부분에 대한 부호의 설명 -
10 : 타이머 블록 20 : CAM 블록
30 : ID 생성기 35 : 카운터
본 발명은 CAM을 이용한 명령 스케줄러에 관한 것으로서, 보다 상세하게는 여러 개의 장치로 각각 미리 지정된 독립적인 주기마다 명령을 보내기 위한 스케줄러를 하나의 타이머와 CAM(Content Addressable Memory)을 이용하여 구현함으로써 저전력으로 여러 개의 장치의 명령을 스케줄링할 수 있도록 한 CAM을 이용한 명령 스케줄러에 관한 것이다.
스케줄러는 동시다발적으로 발생되는 이벤트들을 순차적으로 혹은 우선 순위에 따라 처리하도록 관리하는 것이다.
예를 들어, 의료용의 목적으로 인체 또는 로봇과 같이 제한된 영역에서 많은 센서로부터 많은 데이터를 수집하거나 로봇의 각 관절 등 개개의 장치들을 실시간(real-time)으로 제어하기 위해서는 각 장치마다 일정 시간 간격으로 데이터를 중앙처리장치로 전송을 해야 한다.
이를 위해서는 각각의 장치가 주기 정보를 가지고 있어서 지정된 주기마다 자동적으로 데이터를 전송하는 방법과 중앙처리장치가 데이터를 요청하면 그에 대한 응답으로 데이터를 전송하는 방법이 있다.
먼저, 전자의 경우 중앙처리장치의 입장에서는 각각의 장치들이 언제 데이터를 전송할지 모르는 상태이고 또 각각의 장치가 보내는 데이터의 주기가 다르다고 해도 동시에 데이터를 전송하는 경우가 발생할 확률이 높기 때문에 중앙처리장치에서 이를 데이터 충돌을 관리해야 하는 부담을 가진다.
또한, 후자의 경우에는 중앙처리장치가 모든 센서/장치들의 주기 정보를 가지고 있고 센서/장치들에게 요청을 할 경우에만 데이터가 도착하기 때문에 센서/장치들 간의 데이터 충돌에 대한 문제는 없지만 모든 센서/장치들의 주기 정보를 관 리하고 데이터 요청 신호를 보내는 작업이 부담으로 다가온다.
모든 장치들의 주기 정보를 가지면서 지정된 주기마다 해당 장치에게 데이터 요청 명령을 내리는 장치를 스케줄러라 한다.
이와 같은 스케줄러를 하드웨어적으로 구현하기 위해서는 관리해야 하는 장치의 개수만큼의 하드웨어 타이머와 주기 정보를 저장하는 저장장치(레지스터)를 필요로 하는데 이는 센서나 장치의 개수가 한정되는 문제점이 있을 뿐만 아니라 너무 많은 면적을 차지하는 문제점이 있으며, 하드웨어 타이머들이 모두 동작하기 때문에 전력 소모가 많아지는 문제점이 있어 장치의 개수가 수십 개를 넘어서면 현실적으로 구현이 힘든 문제점이 있다.
한편, 위와 같은 동작을 수행하는 스케줄러를 소프트웨어적으로 구현하기 위해서는 하나의 하드웨어 타이머의 동작속도를 장치의 개수만큼의 배율로 빠르게 동작시켜 시분할 방식으로 각각의 장치들의 주기를 관리할 수 있지만 주파수 상승에 따른 전력소모의 추가 외에도 그만큼의 주파수를 높이기 위해서는 전압까지 상승시켜야 하므로 소비전력이 증가되는 문제점이 있다.
그리고 소프트웨어적으로 처리하기 때문에 주기정보를 관리하는 동안 CPU는 다른 작업을 수행할 수 없기 때문에 전체 시스템의 성능 저하에도 영향을 미치는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 본 발명의 목적은 여러 개의 장치로부터 각각 미리 지정된 독립적인 주기마다 명령을 보내기 위한 스케줄러를 하나의 타이머와 CAM을 이용하여 구현함으로써 저전력으로 여러 개의 장치의 명령을 스케줄링할 수 있도록 한 CAM을 이용한 명령 스케줄러를 제공함에 있다.
상기와 같은 목적을 실현하기 위한 본 발명은 ID번호가 부여되어 관리되는 다수개의 ID 장치의 주기정보가 ID번호를 메모리 주소로 하는 영역에 각각 저장되는 CAM 블록과, 다양한 주기정보를 CAM 블록의 서치 라인으로 출력하는 타이머 블록과, 타이머 블록에서 출력되는 주기정보와 CAM 블록에 저장된 주기정보가 일치하는 ID번호를 해당하는 ID 장치로 출력하는 ID 생성기를 포함하여 이루어진 것을 특징으로 한다.
본 발명은 CAM 블록에 저장된 데이터 중 어느 한 비트는 해당 메모리 주소가 검색 대상임을 나타내는 활성화 비트인 것을 특징으로 한다.
본 발명은 CAM 블록에서 활성화 비트가 비활성 상태일 경우 해당 주소의 데이터는 비교하지 않는 것을 특징으로 한다.
본 발명에서 ID 생성기는 주기정보가 일치하는 ID번호를 순차적으로 출력하기 위한 카운터를 더 포함하여 이루어진 것을 특징으로 한다.
이때 카운터는 CAM 블록의 메모리 개수까지 순차적으로 카운트하는 것을 특징으로 한다.
본 발명에서 ID 생성기는 (타이머 블록의 동작속도 × CAM 블록의 메모리 개수) 이상의 속도로 동작하여 ID번호를 출력하는 것을 특징으로 한다.
위와 같이 이루어진 본 발명은 스케줄링 되는 장치에 ID번호를 부여하여 관리하고, 그 ID번호를 CAM 블록의 메모리 주소로 사용하여 각각의 영역에 ID 장치의 주기정보를 저장한 후 타이머 블록에서 출력되는 주기정보에 따라 일치하는 ID번호에 대해 ID 생성기에서 해당 ID 장치로 정보를 보내거나 ID 장치로 정보를 보낼 명령을 생성함으로써 해당 ID장치가 동작할 수 있도록 하여 스케줄링이 된다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 설명하며 종래 구성과 동일한 부분은 동일한 부호 및 명칭을 사용한다. 또한 본 실시예는 본 발명의 권리범위를 한정하는 것은 아니고, 단지 예시로 제시된 것이며 당 분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상 내에서 많은 변형이 가능할 것이다.
도 1은 본 발명에 의한 CAM을 이용한 명령 스케줄러를 설명하기 위한 블록구성도이다.
여기에 도시된 바와 같이 ID번호가 부여되어 관리되는 다수개의 ID 장치(미도시)의 주기정보가 ID번호를 메모리 주소로 하는 영역에 각각 저장되는 CAM 블록(20)과, 다양한 주기정보를 CAM 블록(20)의 서치 라인으로 출력하는 타이머 블록(10)과, 타이머 블록(10)에서 출력되는 주기정보와 CAM 블록(20)에 저장된 주기정보가 일치하는 ID번호를 해당하는 ID 장치로 출력하는 ID 생성기(30)로 이루어진 다.
이와 같이 이루어진 본 발명에 의한 CAM을 이용한 명령 스케줄러의 동작을 도 2에 도시된 구체적인 실시예를 나타낸 블록구성도를 참조하여 설명하면 다음과 같다.
본 실시예에서는 15종류의 주기정보(2초, 5초, 10초, 20초, 30초, 1분, 2분, 5분, 10분, 20분, 30분, 1시간, 2시간, 4시간, 8시간)를 다룰 수 있고 최고 256개의 장치들의 주기를 관리할 수 있는 스케줄러를 참조하여 그 동작을 설명한다.
이때, 주기 정보는 타이머 블록(10)의 구현 방식에 따라 다양한 종류의 주기 정보를 생성시킬 수 있다.
그리고 타이머 블록(10)의 주기정보를 나타내는 15bit의 출력신호는 CAM 블록(20)의 서치라인(search line)에 연결된다. 본 실시예에서는 CAM 블록(20)을 다양한 종류의 CAM 중에서 Ternary CAM (TCAM)을 이용하였다.
즉, 도 2에 도시된 본 발명의 실시예는 256개의 장치에 15종류(2초, 5초, 10초, 20초, 30초, 1분, 2분, 5분, 10분, 20분, 30분, 1시간, 2시간, 4시간, 8시간)의 주기정보를 저장할 수 있도록 타이머 블록(10)과 16bit x 256 word의 Ternary CAM 블록(20)과 ID 생성기(30)로 구성된다. 이때 16bit중 주기 정보를 포함하고 있지 않은 1bit는 해당 word가 검색 대상임을 나타내는 bit으로 이용되고 있다. 이 bit가 비활성화되어 있으면 CAM 블록은 검색 동작시 해당 word는 검색하지 않음으로써 저전력 동작에 기여한다.
이때, ID 생성기(30)는 ML0에서 ML255까지의 신호들의 활성화 여부를 실시간 으로 감시하기 위해 타이머 블록(10)의 동작속도보다 256배 이상으로 빠르게 동작하게 된다.
또한, ID 생성기(30)는 8bit 카운터(35)를 포함하여 카운터(35)의 값을 1씩 증가시키면서 ML0부터 ML255까지 순차적으로 활성화 여부를 검사하여 해당 ID 장치로 명령을 보낼 주기가 되었음을 알려주게 된다.
위와 같이 이루어진 각 구성의 동작 상태를 살펴보면 다음과 같다.
먼저, 타이머 블록(10)은 매 초마다 그 출력신호가 변동할 때 2초를 나타내는 15번째 bit는 2초의 배수가 되는 시간마다 활성화되고 5초를 나타내는 14번째 bit는 5초의 배수가 되는 시간마다 활성화된다.
이와 같이 타이머 블록(10)이 동작을 시작한지 30초가 되는 시점에서는 2초를 나타내는 15번 bit와 5초를 나타내는 14번 bit, 10초를 나타내는 13번 bit, 30초를 나타내는 11번 bit가 활성화됨을 도 3에 도시된 타이밍도를 통해 알 수 있다.
또한, 도 2의 CAM 블록(20)에는 0x00과 0x82, 0xff 주소는 검색대상에서 제외되어 있는 상태이고 ID 번호 0x01은 매 5초마다, 0x02는 매 10초, 0x03은 매 20초, 0x71은 매 20분, 0x80과 0x81은 매 30분마다 각각의 ML이 활성화되는 경우를 보여주고 있다.
도 3의 타이밍도는 타이머 블록의 동작상태를 나타낸 것으로써 실제로 디자인하여 모의 실험한 결과 중 일부를 나타낸 것으로 타이머 블록(10)이 시간에 따라 생성하는 신호를 보여주고 있다. 매 2초의 배수가 되는 시간에서는 15번 bit가 활성화되고 매 5초의 배수가 되는 시간에서는 14번 bit가 활성화되고 있다.
또한, CAM 블록(20)에는 ID번호를 부여하여 관리하는 장치들의 주기정보가 해당 ID번호를 메모리 주소로 각각 저장된다.
CAM 블록(20)에 주기정보를 저장하기 위해서는 해당 주기에 해당하는 bit에만 '1'의 값을 저장하고 그 이외에는 'Don't care'를 의미하는 'X'의 값을 저장한다. 즉, ID 1번은 14번째 bit에 '1'을 저장하여 매 5초마다 명령을 내리도록 하고 있고, ID 3번은 12번째 bit에 '1'을 저장하여 매 20초마다 명령을 내리도록 하고 있다.
또한, 본 실시예에서 주기 정보를 포함하고 있지 않은 16번째 bit는 ID장치의 활성화 여부를 나타내는 활성화 비트로써 '1'이 저장되어 있을 경우 해당 ID장치를 사용하는 것으로 간주하여 타이머 블록(10)에서 입력되는 주기정보의 비교동작을 수행하고, '0'이 저장되어 있을 경우에는 해당 ID장치는 사용하지 않는 것으로 간주하여 주기정보의 비교대상에서 제외시켜 명령신호를 생성시키지 않을 뿐 아니라 해당 ID장치의 비교동작을 생략함으로써 저전력 동작을 도모할 수 있다. 만약 모든 ID장치들이 항상 사용하는 경우라면 활성화 비트를 생략함으로써 구현 면적을 줄일 수도 있다.
이와 같이 이루어진 스케줄러에서 타이머 블록(10)이 동작하여 주기정보를 CAM 블록(20)의 서치 라인에 인가하면 CAM 블록(20)에 저장된 주기정보와 비교하여 주기정보가 일치하는 ID번호들이 검색되어 검색결과가 ML#에 인가되어 ID 생성기(30)로 입력된다. 그러면, ID생성기(30)는 최소 256Hz 이상의 속도로 각 ML#들을 검사하여 일치된 주소, 즉 ID번호를 출력하게 된다.
이를 다시 설명하면, 타이머 블록(10)이 동작하여 20초의 시간이 흐르면 CAM 블록(20)의 word 중에서 20초 주기를 의미하는 12번째 bit가(가장 왼쪽이 16번째 bit, 가장 오른쪽이 1번째 bit) 1인 word의 ML#에만 활성화 신호가 인가된다.
그러면, ID 생성기(30)에서 ML0 에서 ML255까지의 신호들의 활성화 여부를 실시간으로 감시하기 위해 타이머 블록(10)의 동작속도보다 최소 256배 이상으로 동작하여 8bit 카운터(35)의 값을 1씩 증가시키면서 ML0부터 ML255까지 차례대로 활성화 여부를 검사하여 활성화된 시점에 해당 카운터 값을 출력함으로써 해당 ID 장치에 명령을 보낼 주기가 되었음을 알려준다.
이와 같이 하나의 타이머 블록(10)이 CAM 블록(20)에 저장되어 있는 모든 장치들의 주기정보와 한 번에 비교하기 때문에 타이머의 개수를 획기적으로 줄일 수 있고 레지스터에 비해 밀집도가 높은 CAM 블록(20)의 메모리 블록을 사용하여 차지하는 면적을 소형화시키면서도 스케줄 정보를 효율적으로 관리할 수 있게 된다.
상술한 바와 같이 본 발명은 여러 개의 장치로부터 각각 미리 지정된 독립적인 주기마다 명령을 보내기 위한 스케줄러를 하나의 타이머와 CAM을 이용하여 구현함으로써 저전력으로 여러 개의 장치의 명령을 스케줄링할 수 있는 이점이 있다.
본 발명은 CAM의 워드라인의 개수만큼의 장치를 스케줄링할 수 있고 메모리의 특성상 면적도 훨씬 적게 차지하는 이점이 있다.
본 발명은 CAM을 이용하여 많은 개수의 장치들을 관리하면서도 소모전력과 면적을 획기적으로 줄일 수 있는 이점이 있다.
본 발명은 구현 면적의 소형화로 대량 생산시 생산 단가를 줄일 수 있을 뿐만 아니라 해당 산업에서의 대중화를 앞당길 수 있는 이점이 있다.

Claims (6)

  1. ID번호가 부여되어 관리되는 다수개의 ID 장치의 주기정보가 ID번호를 메모리 주소로 하는 영역에 각각 저장되는 CAM 블록과,
    다양한 주기정보를 상기 CAM 블록의 서치 라인으로 출력하는 타이머 블록과,
    상기 타이머 블록에서 출력되는 주기정보와 상기 CAM 블록에 저장된 주기정보가 일치하는 ID번호를 해당하는 상기 ID 장치로 출력하는 ID 생성기
    를 포함하여 이루어진 것을 특징으로 하는 CAM을 이용한 명령 스케줄러.
  2. 제 1항에 있어서, 상기 CAM 블록에 저장된 데이터 중 어느 한 비트는 해당 메모리 주소가 검색 대상에 해당하는지를 나타내는 활성화 비트인 것을 특징으로 하는 CAM을 이용한 명령 스케줄러.
  3. 제 2항에 있어서, 상기 CAM 블록에서 활성화 비트가 비활성 상태일 경우 해당 주소의 데이터는 비교하지 않는 것을 특징으로 하는 CAM을 이용한 명령 스케줄러.
  4. 제 1항에 있어서, 상기 ID 생성기는 주기정보가 일치하는 ID번호를 순차적으로 출력하기 위한 카운터를 더 포함하여 이루어진 것을 특징으로 하는 CAM을 이용한 명령 스케줄러.
  5. 제 4항에 있어서, 상기 카운터는 상기 CAM 블록의 메모리 개수까지 순차적으로 카운트하는 것을 특징으로 하는 CAM을 이용한 명령 스케줄러.
  6. 제 1항에 있어서, 상기 ID 생성기는 (상기 타이머 블록의 동작속도 × 상기 CAM 블록의 메모리 개수) 이상의 속도로 동작하여 ID번호를 출력하는 것을 특징으로 하는 CAM을 이용한 명령 스케줄러.
KR1020050125427A 2005-12-19 2005-12-19 Cam을 이용한 명령 스케줄러 KR100662810B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050125427A KR100662810B1 (ko) 2005-12-19 2005-12-19 Cam을 이용한 명령 스케줄러

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050125427A KR100662810B1 (ko) 2005-12-19 2005-12-19 Cam을 이용한 명령 스케줄러

Publications (1)

Publication Number Publication Date
KR100662810B1 true KR100662810B1 (ko) 2007-01-02

Family

ID=37866470

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050125427A KR100662810B1 (ko) 2005-12-19 2005-12-19 Cam을 이용한 명령 스케줄러

Country Status (1)

Country Link
KR (1) KR100662810B1 (ko)

Similar Documents

Publication Publication Date Title
US6918116B2 (en) Method and apparatus for reconfiguring thread scheduling using a thread scheduler function unit
US6401155B1 (en) Interrupt/software-controlled thread processing
JPH086844A (ja) メモリシステム、内容アドレスメモリシステムおよびスケジューリングシステムならびにフェッチ方法
KR100276098B1 (ko) 콘텐트 어드레서블 메모리 사용 시간 표지 이벤트의처리 방법 및 그 장치
KR100662810B1 (ko) Cam을 이용한 명령 스케줄러
KR910001565A (ko) 멀티프로세서 시스템
US6880106B2 (en) Automation system and method for operating an automation system
EP0355243A1 (en) High capacity timer arrangement
Visconti et al. Operation principle, advanced procedures and validation of a new Flex-SPI communication Protocol for smart IoT devices
CN114281503A (zh) 一种线程池核心参数实时动态调整方法、装置和电子设备
US6115665A (en) Memory efficient computer system and method for controlling an automotive ignition system
EP3637262B1 (en) Verification device for vehicle control device and vehicle control device
JP2003216266A (ja) データ処理装置
CN113672551B (zh) 通用处理系统及通用处理方法
JP2000032577A (ja) 時分割スイッチング装置および時分割スイッチング方法、並びに記録媒体
US7545764B1 (en) Synchronized code recognition
EP1170902A2 (en) Method and apparatus for controlling and supervising electronic devices
KR960042406A (ko) 제한된 자원의 이용 개선 장치와 방법, 처리기 이용 개선 장치와 방법, 및 휴대용 전자 장치
KR970002413B1 (ko) 버스정보처리기의 정보저장장치(Trace memory module in the Bus Information Processing Unit)
RU2042182C1 (ru) Микропроцессор ввода-вывода информации
JPH10164167A (ja) プログラマブルコントローラ
KR0152710B1 (ko) AT-Bus에 장착하기 위한 병렬 신경망 보드의 제어회로
KR20050085358A (ko) 카테시안 제어기를 갖는 데이터 처리 시스템
KR100590884B1 (ko) 네트워크 프로세서의 패킷을 처리 방법 및 그 장치
CN113778712A (zh) 嵌入式系统

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20121130

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee