KR20130051821A - 인터럽트 속도 지연이 개선된 코어 시스템 및 이의 벡터 레지스터 파일 데이터 전송방법 - Google Patents

인터럽트 속도 지연이 개선된 코어 시스템 및 이의 벡터 레지스터 파일 데이터 전송방법 Download PDF

Info

Publication number
KR20130051821A
KR20130051821A KR20110117186A KR20110117186A KR20130051821A KR 20130051821 A KR20130051821 A KR 20130051821A KR 20110117186 A KR20110117186 A KR 20110117186A KR 20110117186 A KR20110117186 A KR 20110117186A KR 20130051821 A KR20130051821 A KR 20130051821A
Authority
KR
South Korea
Prior art keywords
register file
vector register
memory
data
core
Prior art date
Application number
KR20110117186A
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 KR20110117186A priority Critical patent/KR20130051821A/ko
Priority to US13/672,756 priority patent/US20130238877A1/en
Publication of KR20130051821A publication Critical patent/KR20130051821A/ko

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

인터럽트 발생시 벡터 레지스터 파일 데이터 전송 지연을 방지하는 기술을 개시한다. 인터럽트 발생시, 코어가 현재 실행중인 벡터 레지스터 파일 데이터를 제1메모리가 수용 가능한지 판단하고, 제1메모리 수용 가능 여부에 따라 제1메모리 또는 제2메모리에 현재 실행중인 벡터 레지스터 파일 데이터를 저장하도록 제어하되, 제2메모리 저장을 위한 별도의 하드웨어 데이터 전송기를 구비한다. 이에 따라, 별도의 하드웨어 데이터 전송기를 이용해 벡터 레지스터 파일 데이터 저장 및 복원 과정에서 발생하는 전송 지연을 방지할 수 있으므로, 코어 시스템의 인터럽트 속도 지연을 개선할 수 있다.

Description

인터럽트 속도 지연이 개선된 코어 시스템 및 이의 벡터 레지스터 파일 데이터 전송방법{Core system improved transfer latency in interrupt and vector register file data transfer method thereof}
인터럽트 발생시 벡터 레지스터 파일 데이터 전송 지연을 방지하는 기술에 관련한 것으로, 특히 인터럽트 속도 지연이 개선된 코어 시스템 및 이의 벡터 레지스터 파일 데이터 전송방법에 관한 것이다.
인터럽트(interrupt)란 컴퓨팅 시스템의 코어(core)가 현재 실행중인 프로세스를 잠시 중단시키고 다른 프로세스를 실행하는 것을 말한다. 코어는 컴퓨팅 시스템의 외부나 내부에서 인터럽트 발생시, 해당 인터럽트를 처리해야 한다.
인터럽트 발생시 컴퓨팅 시스템의 코어는 데이터 저장(Data Save) 과정, 인터럽트 핸들링(Interrupt Handling) 과정, 데이터 복원(Data Restore) 과정을 통해 인터럽트를 처리한다.
데이터 저장(Data Save) 과정은 인터럽트 발생시 코어가 현재 실행중인 프로세스를 잠시 중단시키고, 현재 실행중인 프로세스 데이터를 저장하는 과정으로, 하드웨어적으로는 코어가 현재 레지스터 파일(register file)에 있는 데이터를 메모리(memory)에 저장하는 과정이다.
인터럽트 핸들링(Interrupt Handling) 과정은 인터럽트 처리 루틴으로 점프하여 다른 프로세스를 실행하는 과정으로, 코어가 발생된 인터럽트에 대한 처리를 할 수 있는 함수를 호출하여 실행하는 과정이다.
데이터 복원(Data Restore) 과정은 인터럽트 처리 완료 후, 저장된 이전 프로세스 데이터를 복원하여 중단된 프로세스를 재계하는 과정으로, 인터럽트 종료 검출시 코어가 메모리에 저장된 데이터를 다시 레지스터 파일(register file)로 복원시키는 과정이다.
최근의 컴퓨팅 시스템은 적어도 하나의 스칼라 레지스터(scalar register) 집합인 스칼라 레지스터 파일(scalar register file)과, 적어도 하나의 벡터 레지스터(vector register) 집합인 벡터 레지스터 파일(vector register file)을 포함한다.
인터럽트 발생시, 코어는 인터럽트를 처리하기 위해 현재 레지스터 파일 데이터를 레지스터 데이터를 옮기는데 사용되는 스크래치 패드 메모리(SPM : Scratch Pad Memory)에 저장한다.
그런데, 휴대폰 등의 임베디드 시스템(embeded system)의 경우, 스크래치 패드 메모리(SPM)에 충분한 여유 공간이 없을 가능성이 크므로, 스칼라 레지스터 파일 데이터에 비해 용량이 큰 벡터 레지스터 파일 데이터를 스크래치 패드 메모리(SPM)에 저장시 문제가 발생할 수 있다.
인터럽트 발생시, 벡터 레지스터 파일 데이터 저장 및 복원 과정에서 발생하는 전송 지연을 방지할 수 있는 기술을 제공한다.
일 양상에 따른 인터럽트 속도 지연이 개선된 코어 시스템은 제1메모리와; 제1메모리 보다 상대적으로 용량이 큰 제2메모리와; 복수의 벡터 레지스터 집합인 벡터 레지스터 파일과; 인터럽트 발생시, 현재 실행중인 벡터 레지스터 파일 데이터를 제1메모리가 수용 가능한지 판단하고, 제1메모리 수용 가능 여부에 따라 제1메모리 또는 제2메모리에 현재 실행중인 벡터 레지스터 파일 데이터를 저장하도록 제어하는 제1명령 또는 제2명령을 발생시키는 코어와; 제2명령 발생시, 현재 실행중인 벡터 레지스터 파일 데이터를 벡터 레지스터 파일로부터 읽어 제2메모리에 저장하는 데이터 전송기를 포함한다.
또 다른 양상에 따른 인터럽트 속도 지연이 개선된 코어 시스템의 벡터 레지스터 파일 데이터 전송방법은 코어가 인터럽트 발생을 검출하는 단계와; 인터럽트 발생 검출시, 코어가 현재 실행중인 벡터 레지스터 파일 데이터를 제1메모리가 수용 가능한지 판단하는 단계와; 제1메모리 수용이 가능하다 판단된 경우, 코어가 제1메모리에 현재 실행중인 벡터 레지스터 파일 데이터를 저장하는 단계와; 제1메모리 수용이 가능하지 않다 판단된 경우, 데이터 전송기가 제2메모리에 현재 실행중인 벡터 레지스터 파일 데이터를 저장하는 단계를 포함한다.
인터럽트 발생시, 별도의 하드웨어 데이터 전송기를 이용해 벡터 레지스터 파일 데이터 저장 및 복원 과정에서 발생하는 전송 지연을 방지할 수 있으므로, 코어 시스템의 인터럽트 속도 지연을 개선할 수 있다.
도 1 은 인터럽트 속도 지연이 개선된 코어 시스템의 일 실시예의 구성을 도시한 블럭도이다.
도 2 는 인터럽트 속도 지연이 개선된 코어 시스템에 구현되는 데이터 전송기의 일 실시예의 구성을 도시한 블럭도이다.
도 3 은 데이터 전송기의 벡터 레지스터 파일 데이터 저장 절차를 도시한 흐름도이다.
도 4 는 데이터 전송기의 벡터 레지스터 파일 데이터 복원 절차를 도시한 흐름도이다.
도 5 는 인터럽트 속도 지연이 개선된 코어 시스템의 벡터 레지스터 파일 데이터 전송방법의 일 실시예의 구성을 도시한 흐름도이다.
이하, 첨부된 도면을 참조하여 기술되는 실시예를 통하여 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.
발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 발명 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
명세서 전반에 걸쳐 사용되는 용어들은 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서, 사용자 또는 운용자의 의도, 관례 등에 따라 충분히 변형될 수 있는 사항이므로, 이 용어들의 정의는 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
일 양상에 따라, 레지스터 파일 데이터를 옮기는데 사용되는 메모리를 제1메모리, 제1메모리 부족시 레지스터 파일 데이터를 옮기는데 사용되는 메모리를 제2메모리라 정의한다. 제2메모리는 제1메모리에 비해 상대적으로 용량이 크다.
인터럽트 발생시, 스칼라 레지스터 파일 데이터에 비해 용량이 큰 벡터 레지스터 파일 데이터를 제1메모리에 저장시 발생할 수 있는 메모리 용량 부족을 해결하기 위해 제1메모리에 비해 상대적으로 용량이 큰 제2메모리를 사용하도록 구현할 수 있다.
그런데, 코어를 통해 제2메모리에 벡터 레지스터 파일 데이터를 소프트웨어적으로 저장할 경우. 제2메모리는 코어와 시스템 버스(System Bus)를 통해 인터페이스 되므로, 소프트웨어적인 병목 현상이 발생하게 된다.
즉, 벡터 레지스터 파일 데이터를 제2메모리에 저장하고 복원하는 과정에서 스톨(stall)이 발생할 수 있고, 이는 벡터 레지스터 파일 데이터 저장 및 복원 과정에서의 전송 지연을 야기시키고, 결국 코어 시스템의 인터럽트 속도 지연의 원인이 된다.
도 1 은 인터럽트 속도 지연이 개선된 코어 시스템의 일 실시예의 구성을 도시한 블럭도이다. 도 1 에 도시한 바와 같이, 인터럽트 속도 지연이 개선된 코어 시스템(100)은 제1메모리(110)와, 제2메모리(120)와, 벡터 레지스터 파일(130)과, 코어(140)와, 데이터 전송기(150)를 포함할 수 있다.
제1메모리(110)는 인터럽트 발생시, 현재 실행중인 스칼라 레지스터 파일(160) 데이터와, 벡터 레지스터 파일(130) 데이터를 저장하기 위해 기본 설정되는 메모리이다. 예컨대, 제1메모리(110)로 SPM(Scratch Pad Memory)이 사용될 수 있다.
제2메모리(120)는 제1메모리(110) 보다 상대적으로 용량이 크며, 인터럽트 발생시 제1메모리(110) 잔여 용량이 벡터 레지스터 파일(130) 데이터를 수용할 수 없을 경우, 제1메모리(110)를 대체하여 벡터 레지스터 파일(130) 데이터를 저장하는 메모리이다. 예컨대, 제2메모리(120)로 SDRAM(Synchronous Dynamic Random Access Memory)이 사용될 수 있다.
벡터 레지스터 파일(130)은 복수의 벡터 레지스터(vector register) 집합이다. 코어 시스템(100)은 적어도 하나의 스칼라 레지스터 집합인 스칼라 레지스터 파일(scalar register file)(160)과, 적어도 하나의 벡터 레지스터 집합인 벡터 레지스터 파일(vector register file)(130)을 포함한다.
코어(140)는 단일 코어 또는 적어도 2 이상의 멀티 코어일 수 있으며, 인터럽트 발생시, 현재 실행중인 벡터 레지스터 파일(130) 데이터를 제1메모리(110)가 수용 가능한지 판단하고, 제1메모리 수용 가능 여부에 따라 제1메모리(110) 또는 제2메모리(120)에 현재 실행중인 벡터 레지스터 파일 데이터를 저장하도록 제어하는 제1명령 또는 제2명령을 발생시킨다.
인터럽트 발생 검출은 인터럽트 발생 이벤트를 코어(140)가 감지함에 의해 검출될 수 있고, 현재 실행중인 벡터 레지스터 파일 데이터를 제1메모리가 수용 가능한지 여부 판단은 벡터 레지스터 파일 데이터 용량과, 제1메모리 잔여 용량 비교를 통해 판단할 수 있다.
만일, 제1메모리 수용이 가능하다 판단되어 제1명령이 발생되면, 코어(140)가 현재 실행중인 벡터 레지스터 파일 데이터를 벡터 레지스터 파일(130)로부터 읽어 제1메모리(110)에 저장한다. 이 때, 코어(140)는 데이터 메모리 컨트롤러(170)를 통해 제1메모리(110)에 직접 접근하여 벡터 레지스터 파일 데이터를 저장하므로, 벡터 레지스터 파일 데이터 전송 지연이 발생하지 않는다.
데이터 전송기(150)는 하드웨어적으로 구현되며, 제2명령 발생시, 현재 실행중인 벡터 레지스터 파일 데이터를 벡터 레지스터 파일(130)로부터 읽어 제2메모리(120)에 저장한다.
제2명령이 발생되면, 코어(140)는 제2명령을 데이터 전송기(150)로 전송하여 제1메모리(110) 잔여 용량 부족을 알리고, 하드웨어적으로 구현되는 데이터 전송기(150)는 제2명령에 따라 벡터 레지스터 파일 데이터를 벡터 레지스터 파일(130)로부터 연속적으로 읽어 제2메모리(120)에 저장한다.
만약, 코어(140)가 시스템 버스(180)를 통해 소프트웨어적으로 벡터 레지스터 파일 데이터를 벡터 레지스터 파일(130)로부터 읽어 제2메모리(120)에 저장한다면, 소프트웨어적인 병목 현상이 발생하게 되어, 벡터 레지스터 파일 데이터 저장 과정에서 전송 지연이 발생될 수 있다.
소프트웨어와 하드웨어 특성상, 동일한 프로세스를 소프트웨적으로 수행할 경우와, 하드웨어적으로 수행할 경우를 비교했을 때, 하드웨어적으로 수행하는 경우가 훨씬 수행 속도가 빠르다.
이러한 특성을 적용해, 제2메모리(120)는 시스템 버스(180)를 통해 하드웨어적으로 구현되는 데이터 전송기(150)에 연결되고, 하드웨어적으로 구현되는 데이터 전송기(150)가 스톨(stall) 없이 연속적으로 벡터 레지스터 파일 데이터를 벡터 레지스터 파일(130)로부터 읽어 제2메모리(120)에 저장한다.
이 실시예에 따른 인터럽트 속도 지연이 개선된 코어 시스템(100)은 인터럽트 속도 지연을 개선하기 위해, 인터럽트 발생시, 코어(140)가 현재 실행중인 벡터 레지스터 파일 데이터를 제1메모리(110)가 수용 가능한지 판단하고, 제1메모리 수용 가능 여부에 따라 제1메모리(110) 또는 제2메모리(120)에 현재 실행중인 벡터 레지스터 파일(130) 데이터를 저장하도록 제어하되, 제2메모리 저장을 위한 별도의 하드웨어 데이터 전송기(150)를 구비함으로써 소프트웨어적으로 처리하는 것에 비해 벡터 레지스터 파일 데이터 저장 과정에서의 전송 지연을 개선할 수 있게 된다.
즉, 데이터 전송기(150)를 통해 제2메모리(120)에 대한 벡터 레지스터 파일(130) 데이터 저장은 하드웨어가 전담하게 하고, 코어(140)는 제1메모리(110)의 상태만 확인하므로, 벡터 레지스터 파일 데이터 저장 과정에서의 전송 지연을 개선할 수 있고, 이에 따라 코어 시스템의 인터럽트 속도 지연을 개선할 수 있게 된다.
부가적인 양상에 따르면, 코어(140)가 인터럽트 종료시, 제1메모리(110) 또는 제2메모리(120)에 저장된 벡터 레지스터 파일 데이터를 복원하도록 제어하는 제3명령 또는 제4명령을 발생시키도록 구현될 수 있다. 인터럽트 종료 검출은 인터럽트 종료 이벤트를 코어가 감지함에 의해 검출될 수 있다.
제3명령이 발생되면, 코어(140)가 제1메모리(110)에 저장된 벡터 레지스터 파일 데이터를 읽어 벡터 레지스터 파일(130)로 전송하여 복원한다. 코어(140)는 데이터 메모리 컨트롤러(170)를 통해 제1메모리(110)에 직접 접근하여 벡터 레지스터 파일 데이터를 읽어 벡터 레지스터 파일(130)로 복원함으로써 벡터 레지스터 파일 데이터 전송 지연이 발생하지 않는다.
제4명령을 발생되면, 하드웨어적으로 구현되는 데이터 전송기(150)가 제2메모리(120)에 저장된 벡터 레지스터 파일 데이터를 읽어 벡터 레지스터 파일(130)로 전송하여 복원한다.
만약, 코어(140)가 시스템 버스(180)를 통해 소프트웨어적으로 벡터 레지스터 파일 데이터를 제2메모리(120)로부터 읽어 벡터 레지스터 파일(130)로 복원한다면, 소프트웨어적인 병목 현상이 발생하게 되어, 벡터 레지스터 파일 데이터 복원 과정에서 전송 지연이 발생될 수 있다.
소프트웨어와 하드웨어 특성상, 동일한 프로세스를 소프트웨적으로 수행할 경우와, 하드웨어적으로 수행할 경우를 비교했을 때, 하드웨어적으로 수행하는 경우가 훨씬 수행 속도가 빠르다.
이러한 특성을 적용해, 제2메모리(120)는 시스템 버스(180)를 통해 하드웨어적으로 구현되는 데이터 전송기(150)에 연결되고, 하드웨어적으로 구현되는 데이터 전송기(150)가 스톨(stall) 없이 연속적으로 벡터 레지스터 파일 데이터를 제2메모리(120)로부터 읽어 벡터 레지스터 파일(130)로 전송하여 복원한다.
이 실시예에 따른 인터럽트 속도 지연이 개선된 코어 시스템(100)은 인터럽트 속도 지연을 개선하기 위해, 인터럽트 종료시, 코어(140)가 제1메모리(110) 또는 제2메모리(120)에 저장된 벡터 레지스터 파일 데이터를 복원하도록 제어하되, 별도로 구비된 하드웨어 데이터 전송기(150)를 통해 제2메모리(120)에 저장된 벡터 레지스터 파일 데이터를 벡터 레지스터 파일(130)로 복원함으로써 소프트웨어적으로 처리하는 것에 비해 벡터 레지스터 파일 데이터 복원 과정에서의 전송 지연을 개선할 수 있게 된다.
즉, 데이터 전송기(150)를 통해 제2메모리(120)에 저장된 벡터 레지스터 파일(130) 데이터의 복원은 하드웨어가 전담하게 하고, 코어(140)는 제1메모리(110)에 저장된 벡터 레지스터 파일 데이터의 복원에만 관여하므로, 벡터 레지스터 파일 데이터 복원 과정에서의 전송 지연을 개선할 수 있고, 이에 따라 코어 시스템의 인터럽트 속도 지연을 개선할 수 있게 된다.
도 2 는 인터럽트 속도 지연이 개선된 코어 시스템에 구현되는 데이터 전송기의 일 실시예의 구성을 도시한 블럭도이다. 도 2 에 도시한 바와 같이, 데이터 전송기(150)는 데이터 저장부(151)와, 데이터 복원부(152)를 포함할 수 있다.
데이터 저장부(151)는 제2명령 발생시, 현재 실행중인 벡터 레지스터 파일 데이터를 벡터 레지스터 파일(130)로부터 읽어 제2메모리(120)로 저장한다. 인터럽트 발생시, 코어(140)가 현재 실행중인 벡터 레지스터 파일(130) 데이터를 제1메모리(110)가 수용 가능한지 판단하여, 제1메모리에 수용 가능하지 않다 판단되면 제2명령을 발생시키고, 이를 하드웨어적으로 구현되는 데이터 전송기(150)로 전송하여 제1메모리(110) 잔여 용량 부족을 알린다.
하드웨어적으로 구현되는 데이터 전송기(150)는 제2명령이 코어(140)로부터 수신되면, 데이터 저장부(151)를 통해 벡터 레지스터 파일 데이터를 벡터 레지스터 파일(130)로부터 연속적으로 읽어 제2메모리(120)에 저장한다.
이에 따라, 제2메모리(120)에 대한 벡터 레지스터 파일(130) 데이터 저장을 하드웨어적으로 구현되는 데이터 전송기(150)의 데이터 저장부(151)가 전담하게 되어, 벡터 레지스터 파일 데이터 저장 과정에서의 전송 지연을 개선할 수 있고, 이에 따라 코어 시스템의 인터럽트 속도 지연을 개선할 수 있게 된다.
데이터 복원부(152)는 제4명령 발생시, 제2메모리(120)로부터 벡터 레지스터 파일 데이터를 읽어 벡터 레지스터 파일(130)로 전송하여 복원한다. 제2명령에 따라, 벡터 레지스터 파일 데이터가 제2메모리(120)에 저장된 상태에서 인터럽트가 종료되면, 코어(140)가 제4명령을 발생시키고, 이를 하드웨어적으로 구현되는 데이터 전송기(150)로 전송하여 벡터 레지스터 파일 데이터 복원을 지시한다.
하드웨어적으로 구현되는 데이터 전송기(150)는 제4명령이 코어(140)로부터 수신되면, 데이터 복원부(152)를 통해 제2메모리(120)로부터 벡터 레지스터 파일 데이터를 읽어 벡터 레지스터 파일(130)로 전송하여 복원한다.
이에 따라, 제2메모리(120)에 저장되는 벡터 레지스터 파일 데이터에 대한 복원을 하드웨어적으로 구현되는 데이터 전송기(150)의 데이터 복원부(152)가 전담하게 되어, 벡터 레지스터 파일 데이터 복원 과정에서의 전송 지연을 개선할 수 있고, 이에 따라 코어 시스템의 인터럽트 속도 지연을 개선할 수 있게 된다.
부가적인 양상에 따르면, 데이터 전송기가 버퍼(153)를 더 포함할 수 있다. 버퍼(153)는 데이터 저장부(151)에 의해 제2메모리(120)로 저장되거나 또는 데이터 복원부(152)에 의해 제2메모리(120)로부터 읽어지는 벡터 레지스터 파일 데이터를 버퍼링한다.
즉, 하드웨어적으로 구현되는 데이터 전송기(150)의 버퍼(153)를 통해 벡터 레지스터 파일 데이터 저장 또는 복원 과정에서 전송되는 벡터 레지스터 파일 데이터를 버퍼링하면서 연속 전송함으로써 벡터 레지스터 파일 데이터 저장 또는 복원 과정에서의 전송 지연을 개선할 수 있고, 이에 따라 코어 시스템의 인터럽트 속도 지연을 개선할 수 있게 된다.
부가적인 양상에 따르면, 데이터 전송기가 시스템 버스 인터페이스(154)를 더 포함할 수 있다. 시스템 버스 인터페이스(154)는 시스템 버스(System Bus)를 통해 제2메모리(120)를 인터페이스 하기 위한 하드웨어 구성이다.
도 3 은 데이터 전송기의 벡터 레지스터 파일 데이터 저장 절차를 도시한 흐름도이다. 우선, 벡터 레지스터 파일 데이터 저장 시작을 지시하는 '식별정보1'는 제1값으로 설정(310)된다.
코어로부터 제2명령이 전송되어 '식별정보1'이 제2값으로 변경(320)되면, 데이터 전송기(150)는 '식별정보1'을 제1값으로 재설정(330)하고, 데이터 저장부(151)를 통해 벡터 레지스터 파일 데이터 저장 과정을 시작한다.
벡터 레지스터 파일 데이터를 저장하기 전에 데이터 저장부(151)가 버퍼(153)가 풀(full) 상태인지 확인(340)한다. 버퍼(153)가 풀 상태가 아니면 벡터 레지스터 파일(130)로부터 벡터 레지스터 파일 데이터를 연속적으로 읽어 버퍼(153)에 버퍼링(350)하는 과정을 반복한다.
버퍼(153)가 풀 상태가 되면, 버퍼(153)에 버퍼링된 벡터 레지스터 파일 데이터가 시스템 버스 인터페이스(154)를 통해 제2메모리(120)로 저장(360)되고, 데이터 저장부(151)는 벡터 레지스터 파일(130)에 있던 모든 벡터 레지스터 파일 데이터가 전송되었는지 판단(370)하여 모든 벡터 레지스터 파일 데이터가 전송될 때까지 340 내지 360 과정을 반복한다.
벡터 레지스터 파일(130)에 있던 모든 벡터 레지스터 파일 데이터가 전송되어 제2메모리(120)로 저장되면, 데이터 전송기(150)가 벡터 레지스터 파일 데이터 저장 및 복원 완료를 지시하는 '식별정보2'를 제2값으로 설정(380)한다. '식별정보2'가 제2값으로 설정되면, 벡터 레지스터 파일 데이터 저장이 완료되었음을 나타낸다.
도 4 는 데이터 전송기의 벡터 레지스터 파일 데이터 복원 절차를 도시한 흐름도이다. 우선, 벡터 레지스터 파일 데이터 복원 시작을 지시하는 '식별정보3'은 제1값으로 설정(410)된다.
코어로부터 제4명령이 전송되어 '식별정보3'이 제2값으로 변경(420)되면, 데이터 전송기(150)는 '식별정보3'을 제1값으로 재설정(430)하고, 데이터 복원부(152)를 통해 벡터 레지스터 파일 데이터 복원 과정을 시작한다.
제2메모리(120)에 저장된 벡터 레지스터 파일 데이터가 시스템 버스 인터페이스(154)를 통해 버퍼(153)에 버퍼링(440)되고, 벡터 레지스터 파일 데이터를 복원하기 전에 데이터 복원부(151)가 버퍼(153)가 빈(empty) 상태인지 확인(450)한다. 버퍼(153)가 빈 상태가 아니면 버퍼(153)에 버퍼링된 벡터 레지스터 파일 데이터를 연속적으로 벡터 레지스터 파일(130)로 복원(460)하는 과정을 반복한다.
제2메모리(120)에 저장된 모든 벡터 레지스터 파일 데이터가 복원되었는지 판단(470)하여 모든 벡터 레지스터 파일 데이터가 복원될 때까지 440 내지 460 과정을 반복한다.
제2메모리(120)에 저장된 모든 벡터 레지스터 파일 데이터가 전송되어 벡터 레지스터 파일(130)로 복원되면, 데이터 전송기(150)가 벡터 레지스터 파일 데이터 저장 및 복원 완료를 지시하는 '식별정보2'를 제1값으로 설정(480)한다. '식별정보2'가 제1값으로 설정되면, 벡터 레지스터 파일 데이터 복원이 완료되었음을 나타낸다.
도 3 및 도 4 에 도시한 과정을 거쳐 벡터 레지스터 파일 데이터 저장 및 복원이 하드웨어적으로 구현되는 데이터 전송기(150)와 제2메모리(120)간에 연속적으로 이루어지므로, 벡터 레지스터 파일 데이터 저장 또는 복원 과정에서의 전송 지연을 개선할 수 있고, 이에 따라 코어 시스템의 인터럽트 속도 지연을 개선할 수 있게 된다.
도 5 를 참조하여 이상에서 설명한 인터럽트 속도 지연이 개선된 코어 시스템의 벡터 레지스터 파일 데이터 전송 동작을 알아본다. 도 5 는 인터럽트 속도 지연이 개선된 코어 시스템의 벡터 레지스터 파일 데이터 전송방법의 일 실시예의 구성을 도시한 흐름도이다.
먼저, 단계 510에서 코어가 인터럽트 발생을 검출한다. 인터럽트 발생 검출은 인터럽트 발생 이벤트를 코어가 감지함에 의해 검출될 수 있다.
단계 510에 의해 인터럽트 발생 검출시, 단계 520에서 코어가 현재 실행중인 벡터 레지스터 파일 데이터를 제1메모리가 수용 가능한지 판단한다.
현재 실행중인 벡터 레지스터 파일 데이터를 제1메모리가 수용 가능한지 판단은 벡터 레지스터 파일 데이터 용량과, 제1메모리 잔여 용량 비교를 통해 판단할 수 있다.
단계 520에 의해 제1메모리 수용이 가능하다 판단된 경우, 단계 530에서 코어가 제1메모리에 현재 실행중인 벡터 레지스터 파일 데이터를 저장한다.
단계 520에 의해 제1메모리 수용이 가능하지 않다 판단된 경우, 단계 540에서 데이터 전송기가 제2메모리에 현재 실행중인 벡터 레지스터 파일 데이터를 저장한다.
벡터 레지스터 파일 데이터가 제1메모리 또는 제2메모리에 저장되면, 단계 550에서 코어가 인터럽트 종료를 검출한다. 인터럽트 종료 검출은 인터럽트 종료 이벤트를 코어가 감지함에 의해 검출될 수 있다.
단계 550에 의해 인터럽트 종료 검출시, 단계 560에서 코어가 벡터 레지스터 파일 데이터가 제1메모리에 저장되었는지 또는 제2메모리에 저장되었는지 판단한다.
단계 560에 의해 벡터 레지스터 파일 데이터가 제1메모리에 저장된 경우, 단계 570에서 코어가 제1메모리에 저장된 벡터 레지스터 파일 데이터를 읽어 벡터 레지스터 파일로 전송하여 복원한다.
단계 560에 의해 벡터 레지스터 파일 데이터가 제2메모리에 저장된 경우, 단계 580에서 데이터 전송기가 제2메모리에 저장된 벡터 레지스터 파일 데이터를 읽어 벡터 레지스터 파일로 전송하여 복원한다.
이렇게 함에 의해, 인터럽트 발생시 별도의 하드웨어 데이터 전송기를 이용해 벡터 레지스터 파일 데이터 저장 및 복원 과정에서 발생하는 전송 지연을 방지할 수 있으므로, 코어 시스템의 인터럽트 속도 지연을 개선할 수 있게 된다.
발명은 첨부된 도면에 의해 참조되는 바람직한 실시예를 중심으로 기술되었지만, 이러한 기재로부터 후술하는 특허청구범위에 의해 포괄되는 범위내에서 발명의 범주를 벗어남이 없이 다양한 변형이 가능하다는 것은 명백하다.
100 : 코어 시스템 110 : 제1메모리
120 : 제2메모리 130 : 벡터 레지스터 파일
140 : 코어 150 : 데이터 전송기
151 : 데이터 저장부 152 : 데이터 복원부
153 : 버퍼 154 : 시스템 버스 인터페이스
160 : 스칼라 레지스터 파일 170 : 데이터 메모리 컨트롤러
180 : 시스템 버스

Claims (13)

  1. 제1메모리와;
    제1메모리 보다 상대적으로 용량이 큰 제2메모리와;
    복수의 벡터 레지스터 집합인 벡터 레지스터 파일과;
    인터럽트 발생시, 현재 실행중인 벡터 레지스터 파일 데이터를 제1메모리가 수용 가능한지 판단하고, 제1메모리 수용 가능 여부에 따라 제1메모리 또는 제2메모리에 현재 실행중인 벡터 레지스터 파일 데이터를 저장하도록 제어하는 제1명령 또는 제2명령을 발생시키는 코어와;
    제2명령 발생시, 현재 실행중인 벡터 레지스터 파일 데이터를 벡터 레지스터 파일로부터 읽어 제2메모리에 저장하는 데이터 전송기를;
    포함하는 인터럽트 속도 지연이 개선된 코어 시스템.
  2. 제 1 항에 있어서,
    코어가:
    인터럽트 종료시, 제1메모리 또는 제2메모리에 저장된 벡터 레지스터 파일 데이터를 복원하도록 제어하는 제3명령 또는 제4명령을 발생시키는 인터럽트 속도 지연이 개선된 코어 시스템.
  3. 제 2 항에 있어서,
    데이터 전송기가:
    제4명령 발생시, 제2메모리에 저장된 벡터 레지스터 파일 데이터를 읽어 벡터 레지스터 파일로 전송하여 복원하는 인터럽트 속도 지연이 개선된 코어 시스템.
  4. 제 2 항에 있어서,
    코어가:
    제1명령 발생시, 현재 실행중인 벡터 레지스터 파일 데이터를 벡터 레지스터 파일로부터 읽어 제1메모리에 저장하는 인터럽트 속도 지연이 개선된 코어 시스템.
  5. 제 4 항에 있어서,
    코어가:
    제3명령 발생시, 제1메모리에 저장된 벡터 레지스터 파일 데이터를 읽어 벡터 레지스터 파일로 전송하여 복원하는 인터럽트 속도 지연이 개선된 코어 시스템.
  6. 제 3 항에 있어서
    데이터 전송기가:
    제2명령 발생시, 현재 실행중인 벡터 레지스터 파일 데이터를 벡터 레지스터 파일로부터 읽어 제2메모리로 저장하는 데이터 저장부와;
    제4명령 발생시, 제2메모리로부터 벡터 레지스터 파일 데이터를 읽어 벡터 레지스터 파일로 전송하여 복원하는 데이터 복원부를;
    포함하는 인터럽트 속도 지연이 개선된 코어 시스템.
  7. 제 6 항에 있어서,
    데이터 전송기가:
    데이터 저장부에 의해 제2메모리로 저장되거나 또는 데이터 복원부에 의해 제2메모리로부터 읽어지는 벡터 레지스터 파일 데이터를 버퍼링하는 버퍼를;
    더 포함하는 인터럽트 속도 지연이 개선된 코어 시스템.
  8. 제 7 항에 있어서,
    데이터 전송기가:
    시스템 버스를 통해 벡터 레지스터 파일 데이터를 저장 및 복원하도록 시스템 버스를 인터페이스를;
    더 포함하는 인터럽트 속도 지연이 개선된 코어 시스템.
  9. 제 5 항에 있어서,
    코어가:
    데이터 메모리 컨트롤러를 통해 벡터 레지스터 파일 데이터를 저장 및 복원하는 인터럽트 속도 지연이 개선된 코어 시스템.
  10. 제 1 항에 있어서,
    제1메모리는 SPM(Scratch Pad Memory)이고, 제2메모리는 SDRAM(Synchronous Dynamic Random Access Memory)인 인터럽트 속도 지연이 개선된 코어 시스템.
  11. 제 1 항에 있어서,
    코어가:
    단일 코어 또는 적어도 2 이상의 멀티 코어인 인터럽트 속도 지연이 개선된 코어 시스템.
  12. 코어가 인터럽트 발생을 검출하는 단계와;
    인터럽트 발생 검출시, 코어가 현재 실행중인 벡터 레지스터 파일 데이터를 제1메모리가 수용 가능한지 판단하는 단계와;
    제1메모리 수용이 가능하다 판단된 경우, 코어가 제1메모리에 현재 실행중인 벡터 레지스터 파일 데이터를 저장하는 단계와;
    제1메모리 수용이 가능하지 않다 판단된 경우, 데이터 전송기가 제2메모리에 현재 실행중인 벡터 레지스터 파일 데이터를 저장하는 단계를;
    포함하는 인터럽트 속도 지연이 개선된 코어 시스템의 벡터 레지스터 파일 데이터 전송방법.
  13. 제 12 항에 있어서,
    인터럽트 속도 지연이 개선된 코어 시스템의 벡터 레지스터 파일 데이터 전송방법이:
    코어가 인터럽트 종료를 검출하는 단계와;
    인터럽트 종료 검출시, 코어가 벡터 레지스터 파일 데이터가 제1메모리에 저장되었는지 또는 제2메모리에 저장되었는지 판단하는 단계와;
    벡터 레지스터 파일 데이터가 제1메모리에 저장된 경우, 코어가 제1메모리에 저장된 벡터 레지스터 파일 데이터를 읽어 벡터 레지스터 파일로 전송하여 복원하는 단계와;
    벡터 레지스터 파일 데이터가 제2메모리에 저장된 경우, 데이터 전송기가 제2메모리에 저장된 벡터 레지스터 파일 데이터를 읽어 벡터 레지스터 파일로 전송하여 복원하는 단계를;
    더 포함하는 인터럽트 속도 지연이 개선된 코어 시스템의 벡터 레지스터 파일 데이터 전송방법.
KR20110117186A 2011-11-10 2011-11-10 인터럽트 속도 지연이 개선된 코어 시스템 및 이의 벡터 레지스터 파일 데이터 전송방법 KR20130051821A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20110117186A KR20130051821A (ko) 2011-11-10 2011-11-10 인터럽트 속도 지연이 개선된 코어 시스템 및 이의 벡터 레지스터 파일 데이터 전송방법
US13/672,756 US20130238877A1 (en) 2011-11-10 2012-11-09 Core system for processing an interrupt and method for transmission of vector register file data therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20110117186A KR20130051821A (ko) 2011-11-10 2011-11-10 인터럽트 속도 지연이 개선된 코어 시스템 및 이의 벡터 레지스터 파일 데이터 전송방법

Publications (1)

Publication Number Publication Date
KR20130051821A true KR20130051821A (ko) 2013-05-21

Family

ID=48661682

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20110117186A KR20130051821A (ko) 2011-11-10 2011-11-10 인터럽트 속도 지연이 개선된 코어 시스템 및 이의 벡터 레지스터 파일 데이터 전송방법

Country Status (2)

Country Link
US (1) US20130238877A1 (ko)
KR (1) KR20130051821A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017074377A1 (en) * 2015-10-29 2017-05-04 Intel Corporation Boosting local memory performance in processor graphics
US10360034B2 (en) 2017-04-18 2019-07-23 Samsung Electronics Co., Ltd. System and method for maintaining data in a low-power structure

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711655B1 (en) * 2001-02-02 2004-03-23 Cradle Technologies, Inc. Finding available memory space by finding its associated memory transfer controller
US7103743B2 (en) * 2002-08-23 2006-09-05 Intel Corporation System and method of accessing vital product data

Also Published As

Publication number Publication date
US20130238877A1 (en) 2013-09-12

Similar Documents

Publication Publication Date Title
JP4792113B2 (ja) プロセッサ間割り込み
US8843663B2 (en) Data transmission device and method for merging multiple commands
CN107046508B (zh) 报文接收方法及网络设备
US5819111A (en) System for managing transfer of data by delaying flow controlling of data through the interface controller until the run length encoded data transfer is complete
US9524114B2 (en) Optimizing synchronous write via speculation
CN101390057A (zh) 两级中断服务例程
CN113468097B (zh) 基于片上系统的数据交换方法
US11010094B2 (en) Task management method and host for electronic storage device
KR20130051821A (ko) 인터럽트 속도 지연이 개선된 코어 시스템 및 이의 벡터 레지스터 파일 데이터 전송방법
JP3703439B2 (ja) データ転送制御装置及び方法
CN100419689C (zh) 中断处理方法及装置
JPWO2004046926A1 (ja) イベント通知方法、デバイス及びプロセッサシステム
US8214448B2 (en) Optimized utilization of DMA buffers for incoming data packets in a network protocol
US20080281999A1 (en) Electronic system with direct memory access and method thereof
KR100633120B1 (ko) 저장 매체의 데이터 대역폭 향상 방법 및 이를 위한 장치
KR20150076699A (ko) 가상화 장치 및 방법
US7870436B2 (en) System and method for tracing acceleration in an embedded device
KR100817203B1 (ko) 비휘발성 저장장치의 데이터 판독 방법
JPH08137703A (ja) タスク切替装置
JPH10133997A (ja) Dma制御装置
US20060031604A1 (en) DMA transfer apparatus and method of controlling data transfer
KR20230083769A (ko) 데이터 파싱 인터페이스 장치
CN115826857A (zh) 一种NVMe指令处理方法、装置、设备及介质
US9189380B2 (en) Systems and methods to save and restore a write gather pipe
JPH0836542A (ja) Dmaコントローラ

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid