[go: up one dir, main page]

KR101849702B1 - 외부 인트린직 인터페이스 - Google Patents

외부 인트린직 인터페이스 Download PDF

Info

Publication number
KR101849702B1
KR101849702B1 KR1020110073477A KR20110073477A KR101849702B1 KR 101849702 B1 KR101849702 B1 KR 101849702B1 KR 1020110073477 A KR1020110073477 A KR 1020110073477A KR 20110073477 A KR20110073477 A KR 20110073477A KR 101849702 B1 KR101849702 B1 KR 101849702B1
Authority
KR
South Korea
Prior art keywords
module
fifo register
core
storage space
stall
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020110073477A
Other languages
English (en)
Other versions
KR20130012338A (ko
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 KR1020110073477A priority Critical patent/KR101849702B1/ko
Priority to US13/398,305 priority patent/US9519488B2/en
Publication of KR20130012338A publication Critical patent/KR20130012338A/ko
Priority to US15/375,874 priority patent/US10102005B2/en
Application granted granted Critical
Publication of KR101849702B1 publication Critical patent/KR101849702B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • G06F9/3881Arrangements for communication of instructions and data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

외부 인트린직 인터페이스가 개시된다. 본 발명의 일실시예에 따른 프로세서는, 복수 개의 연산 유닛을 포함하는 코어; 상기 코어의 외부에 위치하는 인트린직 모듈; 및 상기 복수 개의 연산 유닛 중 어느 하나의 연산 유닛 및 상기 인트린직 모듈 사이를 중계하는 인터페이스 모듈을 포함할 수 있다.

Description

외부 인트린직 인터페이스{External Intrinsic Interface}
본 발명은 프로세서에 관한 것으로서, 보다 구체적으로는 인트린직 모듈을 이용하는 프로세서에 관한 것이다.
종래의 프로세서(Processor)는, 기본 인트린직 세트(Intrinsic Set) 이외에도, 추가적인 연산(Operation)을 수행하기 위한 인트린직 모듈(Intrinsic Module)(130)을 추가적으로 포함할 수 있다. 이 때, 추가되는 인트린직 모듈은 프로세서의 내부에 위치하게 되는데, 이하 도 1을 참조하여, 종래의 프로세서에 대해서 설명한다.
도 1은 종래의 인트린직 모듈을 이용하는 프로세서의 구조를 나타내는 도면이다.
도 1을 참조하면, 종래의 프로세서는 코어(Core)(110) 내부에 위치하는 연산 유닛(Functional Unit)(120)을 통하여 기본적인 연산들을 수행하고, 선택적으로 기본 연산 이외의 추가적인 연산을 수행하기 위한 인트린직 모듈(130)을 더 포함할 수 있다. 이 때, 추가되는 인트린직 모듈(130)은 코어(110) 내부에 위치하여, 연산 유닛(120)에 연결된다.
종래의 프로세서에서 인트린직 모듈(130)은 코어(110) 내부에 위치하여 연산 유닛(120)에 직접 연결되기 때문에, 인트린직 모듈(130)은 코어(110)와 동일한 클락 도메인(Clock Domain)에 포함되게 된다. 예를 들어, 프로세서의 코어(110)가 1GHz의 코어 클락(Core Clock)(111)으로 동작하는 경우, 인트린직 모듈(130) 역시 1GHz로 동작하도록 설계되어야 한다. 특히, 500MHz 이상의 높은 동작 속도를 갖도록 설계하는 작업은 전문가에 의한 별도의 설계 노력이 상당히 필요하기 때문에, 인트린직 모듈(130)을 특정한 솔루션(Solution)의 구현 방법으로 선택하는데 부담이 커지게 된다. 또한, 인트린직 모듈(130)의 역할 자체가 고속 동작이 필요하지 않은 연산인 경우에도, 코어(110)의 클락 도메인에 따라 고속 동작 설계가 요구되는 경우가 발생할 수 있다.
프로세서의 코어(110)와 인트린직 모듈(130)은 연산 리퀘스트(Operation Request) 발생 후 몇 사이클(Cycle) 후 결과 값(Result Value)가 나와야 하는지 약속되어 있다. 따라서, 종래의 프로세서에서 인트린직 모듈(130)은 코어(110) 내부에 위치하여 연산 유닛(120)에 직접 연결되기 때문에, 프로세서의 코어(110)와 인트린직 모듈(130) 양쪽의 대기 시간(Latency) 계산이 어긋나지 않기 위해서는, 어느 하나에서 스톨이 발생하면 나머지 하나도 스톨이 되어야 한다. 즉, 코어(110)에 스톨(Stall)(112)이 발생하는 경우, 인트린직 모듈(130) 역시 스톨 되어야 한다. 반대로, 인트린직 모듈(130)에 스톨(132)이 발생하는 경우, 코어(110)도 함께 스톨 되어야 한다. 따라서, 프로세서 전체의 스톨이 늘어나게 되어, 프로세서 전체 성능이 저하되게 된다.
본 발명의 일실시예에 따른 프로세서는, 복수 개의 연산 유닛을 포함하는 코어; 상기 코어의 외부에 위치하는 인트린직 모듈; 및 상기 복수 개의 연산 유닛 중 어느 하나의 연산 유닛 및 상기 인트린직 모듈 사이를 중계하는 인터페이스 모듈을 포함할 수 있다.
본 발명의 일측에 따르면, 상기 인터페이스 모듈은 입력 FIFO 레지스터; 출력 FIFO 레지스터; 및 제어부를 포함할 수 있다.
본 발명의 일측에 따르면, 상기 제어부는, 상기 코어의 클락 도메인 및 상기 인트린직 모듈의 클락 도메인이 다른 경우, 상기 입력 FIFO 레지스터 및 상기 출력 FIFO 레지스터를 이용하여, 상기 어느 하나의 연산 유닛 및 상기 인트린직 모듈에 대하여 클락 도메인 크로싱 처리를 수행할 수 있다.
본 발명의 일측에 따르면, 상기 제어부는 상기 코어에서 스톨이 발생하는 경우, 상기 출력 FIFO 레지스터를 이용하여 스톨 싸이클 하이딩을 수행할 수 있다.
본 발명의 일측에 따르면, 상기 제어부는 상기 출력 FIFO 레지스터에 사용 가능한 저장 공간이 있는 경우, 상기 인트린직 모듈로부터 수신한 결과 값을 상기 출력 FIFO 레지스터에 저장할 수 있다.
본 발명의 일측에 따르면, 상기 제어부는 상기 인트린직 모듈에서 스톨이 발생하는 경우, 상기 입력 FIFO 레지스터를 이용하여 스톨 싸이클 하이딩을 수행할 수 있다.
본 발명의 일측에 따르면, 상기 제어부는, 상기 입력 FIFO 레지스터에 사용 가능한 저장 공간이 있는 경우, 상기 코어로부터 수신한 리퀘스트를 상기 입력 FIFO 레지스터에 저장할 수 있다.
본 발명의 일측에 따르면, 상기 인터페이스 모듈은, 상기 어느 하나의 연산 유닛으로부터 연산 리퀘스트를 수신하고, 상기 인트린직 모듈로 상기 연산 리퀘스트를 전달하며, 상기 인트린직 모듈로부터 상기 연산 리퀘스트에 대응하는 결과 값을 수신하고, 상기 어느 하나의 연산 유닛으로 상기 결과 값을 전달할 수 있다.
본 발명의 실시예에 따르면, 종래의 인트린직 모듈과 동일한 연산을 수행할 수 있을 뿐만 아니라, 코어 및 인트린직 모듈이 별도의 클락 도메인 상에서 동작할 수 있다. 따라서, 코어 및 인트린직 모듈은 데이터 손실 없이 신호를 주고 받을 수 있고, 인트린직 모듈 설계 시 동작 속도에 제약을 받지 않을 수 있다.
또한, 코어 및 인트린직 모듈 중 어느 하나에서 스톨이 발생하는 경우에도, 나머지 하나는 스톨되지 않고 계속하여 동작할 수 있고, 따라서, 프로세서 전체의 동작 성능이 향상될 수 있다.
도 1은 종래의 인트린직 모듈을 이용하는 프로세서의 구조를 나타내는 도면이다.
도 2는 본 발명의 일실시예에 따른 프로세서의 구조를 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 인터페이스 모듈의 구성을 나타내는 도면이다.
도 4는 본 발명의 일실시예에 따른 코어에서 스톨이 발생한 경우의 인터페이스 모듈의 동작을 나타내는 흐름도이다.
도 5는 본 발명의 일실시예에 따른 인트린직 모듈에서 스톨이 발생한 경우의 인터페이스 모듈의 동작을 나타내는 흐름도이다.
이하에서, 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 2는 본 발명의 일실시예에 따른 프로세서의 구조를 나타내는 도면이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 프로세서는 코어(210), 인트린직 모듈(231, 232) 및 인터페이스 모듈(221, 222)을 포함할 수 있다. 이 때, 인트린직 모듈(231, 232)는 코어(210)의 외부에 위치한다. 또한, 인터페이스 모듈(221, 222)이 코어(210)의 내부에 위치하는 연산 유닛(211, 212)과 인트린직 모듈(231, 232)을 중계한다. 인터페이스 모듈(221, 22)는 코어(210)와 코어(210)의 외부에 위치하는 인트린직 모듈(231, 232)를 중계하기 때문에, 외부 인트린직 인터페이스(External Intrinsic Interface)로 명명될 수 있다.
코어(210)는 복수 개의 연산 유닛(211, 212)을 포함할 수 있다. 또한, 인트린직 모듈(231, 232)는 코어(210)의 외부에 복수 개 설치될 수 있다. 이 때, 인트린직 모듈(221, 222)도 복수 개 구비되어, 복수 개의 연산 유닛(211, 212)과 복수 개의 인트린직 모듈(231, 232)을 각각 중계할 수 있다. 예를 들어, 제1 인터페이스 모듈(221)은 제1 연산 유닛(211)과 제1 인트린직 모듈(231)을 중계할 수 있다. 또한, 제2 인터페이스 모듈(222)은 제2 연산 유닛(212)과 제2 인트린직 모듈(232)을 중계할 수 있다.
본 발명의 일측에 따르면, 인터페이스 모듈(221, 222)은 코어(210)에 포함되는 복수 개의 연산 유닛(211, 212) 중 어느 하나의 연산 유닛으로부터 연산 리퀘스트를 수신하고, 연산 리퀘스트를 전달한 연산 유닛에 대응하는 인트린직 모듈(231, 232)로 연산 리퀘스트를 전달할 수 있다. 또한, 인터페이스 모듈(221, 22)은 인트린직 모듈(231, 232)로부터 연산 리퀘스트에 대응하는 결과 값을 수신하고, 연산 리퀘스트를 전달하였던 연산 유닛으로 결과 값을 전달할 수 있다.
예를 들어, 제1 인터페이스 모듈(221)은 제1 연산 유닛(211)으로부터 연산 리퀘스트(예를 들어, opcode, operand 등)를 수신하고, 제1 인트린직 모듈(231)로 동작 리퀘스트를 전달할 수 있다. 또한, 제1 인터페이스 모듈(221)은 제1 인트린직 모듈(231)로부터 연산 리퀘스트에 대응하는 결과 값을 수신하고, 제1 연산 유닛(211)으로 결과 값을 전달할 수 있다.
실시예에 따라서는, 하나의 연산 유닛에는 복수 개의 인트린직 모듈이 연결될 수 있다. 예를 들어, 제1 연산 유닛(211)에는 복수 개의 제1 인트린직 모듈(231)이 연결될 수 있다. 이 때, 제1 인트린직 모듈(221)은 제1 연산 유닛(211)으로부터 전달 받은 opcode에 따라 복수 개의 제1 인트린직 모듈(221) 중 해당하는 인트린직 모듈을 검색하여, 검색된 인트린직 모듈과 제1 연산 유닛(211)을 중계할 수 있다.
본 발명의 또 다른 일측에 따르면, 인트린직 모듈은 LD/ST(Load/Store) 인트린직으로 이용될 수 있다. 예를 들어, 제2 인터페이스 모듈(222)은 제2 연산 유닛(212)으로부터 연산 리퀘스트를 수신하고, 제2 인트린직 모듈(232)로부터 결과 값을 수신하여 전달하는 것이 아니라, 변수(Argument)를 통해 주어진 주소에서 특정 값을 읽고 쓰는 LD/ST 연산 기능을 수행할 수 있다. 따라서, operand를 수신하여 연산을 수행하기 전에 미리 제어 레지스터 셋팅(Control Register Setting)을 통하여 설정이 필요한 인트린직 모듈의 경우에도, 별도의 AXI 포트(AXI Port)를 사용하는 오버헤드(Overhead) 없이 간단히 제어 레지스터에 접근하여 필요한 설정을 수행할 수 있다.
이하, 상술한 인터페이스 모듈(231, 232)의 세부 구성에 대해서 도 3을 참조하여 설명한다.
도 3은 본 발명의 일실시예에 따른 인터페이스 모듈의 구성을 나타내는 도면이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 인터페이스 모듈(320)은 입력 FIFO 레지스터(Input FIFO Register)(321), 출력 FIFO 레지스터(Output FIFO Register)(322) 및 제어부(Control Unit)(323)를 포함할 수 있다. 즉, 인터페이스 모듈(320)은 입력 FIFO 레지스터(321) 및 출력 FIFO 레지스터(322)를 이용하여 큐잉(Queuing) 처리를 수행할 수 있다.
본 발명의 일측에 따르면, 인터페이스 모듈(320)은 프로세서의 코어(310)의 클락 도메인 및 인트린직 모듈(330)의 클락 도메인이 다른 경우, 코어(310) 및 인트린직 모듈(330)의 신호가 소실되지 않도록, 클락 도메인 크로싱(Clock Domain Crossing) 처리를 수행할 수 있다.
자세히 설명하면, 인트린직 모듈(320)의 제어부(323)는, 코어(310)의 클락 도메인 및 인트린직 모듈(330)의 클락 도메인이 다른 경우, 입력 FIFO 레지스터(321) 및 출력 FIFO 레지스터(322)를 이용하여, 코어(310)에 포함된 연산 유닛 및 인트린직 모듈(330)에 대하여 클락 도메인 크로싱 처리를 수행할 수 있다.
예를 들어, 코어(310)와 인트린직 모듈(330)의 동작 속도 차로 인하여, 인트린직 모듈(330)이 리퀘스트 발생 속도에 맞추어 리퀘스트를 모두 받아들이지 못하는 경우, 제어부(323)는 입력 FIFO 레지스터(321)에 리퀘스트를 중간 저장하고, 인트린직 모듈(330)이 리퀘스트를 가져갈 수 있는 속도에 맞추어 입력 FIFO 레지스터(321)에 저장된 리퀘스트를 인트린직 모듈(330)로 전달할 수 있다.
본 발명의 일측에 따르면, 인터페이스 모듈(320)은 코어(310)에서 스톨이 발생하거나, 인트린직 모듈(330)에서 스톨이 발생하는 경우, 서로의 성능에 영향을 미치지 않도록 큐잉 처리를 통해 스톨 싸이클 하이딩(Stall Cycle Hiding) 처리를 수행할 수 있다.
이하, 도 4를 참조하여 코어(310)에서 스톨이 발생한 경우의 인터페이스 모듈(320)의 동작을 설명하고, 도 5를 참조하여 인트린직 모듈(330)에서 스톨이 발생한 경우의 인터페이스 모듈(320)의 동작을 설명한다.
도 4는 본 발명의 일실시예에 따른 코어에서 스톨이 발생한 경우의 인터페이스 모듈의 동작을 나타내는 흐름도이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 인터페이스 모듈(320)은, 코어(310)에서 스톨이 발생하는 경우, 출력 FIFO 레지스터(322)를 이용하여 스톨 싸이클 하이딩을 수행할 수 있다.
자세히 설명하면, 코어(310)에서 스톨이 발생하면(410), 인터페이스 모듈(320)의 제어부(323)는 출력 FIFO 레지스터(322)에 사용 가능한 저장 공간(여유 공간)이 있는지 여부를 판단할 수 있다(420).
출력 FIFO 레지스터(322)에 사용 가능한 저장 공간(여유 공간)이 없는 경우, 인터페이스 모듈(320)의 제어부(323)는 인트린직 모듈(330)을 스톨 상태로 천이 시킬 수 있다(431).
출력 FIFO 레지스터(322)에 사용 가능한 저장 공간(여유 공간)이 있는 경우, 인터페이스 모듈(320)의 제어부(323)는 인트린직 모듈(330)로부터 수신한 결과 값(출력 값)을 출력 FIFO 레지스터(322)에 저장할 수 있다(432). 따라서, 코어(310)가 스톨 되는 경우에도, 인트린직 모듈(330)은 스톨 되지 않고 계속하여 동작할 수 있다.
인터페이스 모듈(320)의 제어부(323)는 코어(310)의 스톨이 지속되는지 여부를 판단할 수 있다(440). 코어(310)의 스톨이 지속되는 경우, 제어부(323)는 단계(420) 내지 단계(440)을 반복 수행할 수 있다.
도 5는 본 발명의 일실시예에 따른 인트린직 모듈에서 스톨이 발생한 경우의 인터페이스 모듈의 동작을 나타내는 흐름도이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 인터페이스 모듈(320)은, 인트린직 모듈(330)에서 스톨이 발생하는 경우, 입력 FIFO 레지스터(321)를 이용하여 스톨 싸이클 하이딩을 수행할 수 있다.
자세히 설명하면, 인트린직 모듈(330)에서 스톨이 발생하면(510), 인터페이스 모듈(320)의 제어부(323)는 입력 FIFO 레지스터(321)에 사용 가능한 저장 공간(여유 공간)이 있는지 여부를 판단할 수 있다(520).
입력 FIFO 레지스터(321)에 사용 가능한 저장 공간(여유 공간)이 없는 경우, 인터페이스 모듈(320)의 제어부(323)는 코어(310)를 스톨 상태로 천이 시킬 수 있다(531).
입력 FIFO 레지스터(321)에 사용 가능한 저장 공간(여유 공간)이 있는 경우, 인터페이스 모듈(320)의 제어부(323)는 코어(310)의 연산 유닛으로부터 수신한 리퀘스트를 입력 FIFO 레지스터(321)에 저장할 수 있다(532). 따라서, 인트린직 모듈(330)이 스톨 되는 경우에도, 코어(310)는 스톨 되지 않고 계속하여 동작할 수 있다.
인터페이스 모듈(320)의 제어부(323)는 인트린직 모듈(330)의 스톨이 지속되는지 여부를 판단할 수 있다(540). 인트린직 모듈(330)의 스톨이 지속되는 경우, 제어부(323)는 단계(520) 내지 단계(540)을 반복 수행할 수 있다.
본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
210: 코어
211, 212: 연산 유닛
221, 222: 인터페이스 모듈
231, 232: 인트린직 모듈

Claims (18)

  1. 복수 개의 연산 유닛을 포함하는 코어;
    상기 코어의 외부에 위치하는 인트린직 모듈; 및
    상기 복수 개의 연산 유닛 중 어느 하나의 연산 유닛 및 상기 인트린직 모듈 사이를 중계하는 인터페이스 모듈을 포함하고,
    상기 인터페이스 모듈은
    입력 FIFO 레지스터; 출력 FIFO 레지스터; 및 제어부를 포함하고,
    상기 제어부는,
    상기 코어에서 스톨이 발생할 때 상기 출력 FIFO 레지스터 내의 가용 공간을 기반하여 상기 인트린직 모듈의 스톨을 결정하고, 상기 인트린직 모듈 에서 스톨이 발생할 때 상기 입력 FIFO 레지스터 내의 가용 공간을 기반하여 상기 코어의 스톨을 결정하는
    프로세서.
  2. 제1항에 있어서,
    상기 제어부는
    상기 출력 FIFO 레지스터에 사용 가능한 저장 공간이 있는 경우, 상기 인트린직 모듈로부터 수신한 결과 값을 상기 출력 FIFO 레지스터에 저장하는
    프로세서.
  3. 제1항에 있어서,
    상기 제어부는
    상기 입력 FIFO 레지스터에 사용 가능한 저장 공간이 있는 경우, 상기 코어로부터 수신한 리퀘스트를 상기 입력 FIFO 레지스터에 저장하는
    프로세서.
  4. 제1항에 있어서,
    상기 인터페이스 모듈은
    상기 어느 하나의 연산 유닛으로부터 연산 리퀘스트를 수신하고, 상기 인트린직 모듈로 상기 연산 리퀘스트를 전달하며,
    상기 인트린직 모듈로부터 상기 연산 리퀘스트에 대응하는 결과 값을 수신하고, 상기 어느 하나의 연산 유닛으로 상기 결과 값을 전달하는
    프로세서.
  5. 제1항에 있어서,
    상기 제어부는,
    상기 출력 FIFO 레지스터에 가용한 저장 공간이 있고 상기 코어에 스톨이 발생하면, 상기 인트린직 모듈을 스톨하지 않고 계속해서 동작하도록 하는
    프로세서.
  6. 제1항에 있어서,
    상기 제어부는,
    상기 출력 FIFO 레지스터에 가용한 저장 공간이 없고 상기 코어에 스톨이 발생하면, 상기 인트린직 모듈을 스톨하는
    프로세서.
  7. 제1항에 있어서,
    상기 제어부는,
    상기 입력 FIFO 레지스터에 가용한 저장 공간이 있고 상기 인트린직 모듈에 스톨이 발생하면, 상기 코어를 스톨하지 않고 계속해서 동작하도록 하는
    프로세서.
  8. 제1항에 있어서,
    상기 제어부는,
    상기 입력 FIFO 레지스터에 가용한 저장 공간이 없고 상기 인트린직 모듈에 스톨이 발생하면, 상기 코어를 스톨하는
    프로세서.
  9. 삭제
  10. 삭제
  11. 복수 개의 연산 유닛을 포함하는 코어에서 스톨이 발생하는 경우, 인터페이스 모듈에 포함되는 출력 FIFO 레지스터의 가용한 저장 공간을 기반으로 상기 코어의 외부에 위치하는 인트린직 모듈의 스톨을 결정하는 단계;
    상기 인트린직 모듈에서 스톨이 발생하는 경우, 상기 인터페이스 모듈에 포함되는 입력 FIFO 레지스터의 가용한 저장 공간을 기반으로 상기 코어의 스톨을 결정하는 단계;
    를 포함하는 외부 인트린직 인터페이스(External Intrinsic Interface)의 동작 방법.
  12. 제11항에 있어서,
    상기 출력 FIFO 레지스터에 가용한 저장 공간이 있는 경우, 상기 인트린직 모듈로부터 수신한 결과 값을 상기 출력 FIFO 레지스터에 저장하는 단계
    를 더 포함하는 외부 인트린직 인터페이스의 동작 방법.
  13. 제11항에 있어서,
    상기 입력 FIFO 레지스터에 가용한 저장 공간이 있는 경우, 상기 코어로부터 수신한 리퀘스트를 상기 입력 FIFO 레지스터에 저장하는 단계
    를 더 포함하는 외부 인트린직 인터페이스의 동작 방법.
  14. 제11항에 있어서,
    상기 복수의 연산 유닛 중 어느 하나로부터 연산 리퀘스트를 수신하고, 상기 인트린직 모듈로 상기 연산 리퀘스트를 전달하는 단계;
    상기 인트린직 모듈로부터 상기 연산 리퀘스트에 대응하는 결과 값을 수신하고, 상기 연산 리퀘스트를 송신한 연산 유닛으로 상기 결과 값을 전달하는 단계
    를 더 포함하는 외부 인트린직 인터페이스의 동작 방법.
  15. 제11항에 있어서,
    상기 출력 FIFO 레지스터의 가용한 저장 공간을 기반으로 상기 인트린직 모듈의 스톨을 결정하는 단계는,
    상기 출력 FIFO 레지스터에 가용한 저장 공간이 있고 상기 코어에 스톨이 발생하면, 상기 인트린직 모듈을 스톨하지 않고 계속해서 동작하도록 하는 단계
    를 포함하는 외부 인트린직 인터페이스의 동작 방법.
  16. 제11항에 있어서,
    상기 출력 FIFO 레지스터의 가용한 저장 공간을 기반으로 상기 인트린직 모듈의 스톨을 결정하는 단계는,
    상기 출력 FIFO 레지스터에 가용한 저장 공간이 없고 상기 코어에 스톨이 발생하면, 상기 인트린직 모듈을 스톨하는 단계
    를 포함하는 외부 인트린직 인터페이스의 동작 방법.
  17. 제11항에 있어서,
    상기 입력 FIFO 레지스터의 가용한 저장 공간을 기반으로 상기 코어의 스톨을 결정하는 단계는,
    상기 입력 FIFO 레지스터에 가용한 저장 공간이 있고 상기 인트린직 모듈에 스톨이 발생하면, 상기 코어를 스톨하지 않고 계속해서 동작하도록 하는 단계
    를 포함하는 외부 인트린직 인터페이스의 동작 방법.
  18. 제11항에 있어서,
    상기 입력 FIFO 레지스터의 가용한 저장 공간을 기반으로 상기 코어의 스톨을 결정하는 단계는,
    상기 입력 FIFO 레지스터에 가용한 저장 공간이 없고 상기 인트린직 모듈에 스톨이 발생하면, 상기 코어를 스톨하는 단계
    를 포함하는 외부 인트린직 인터페이스의 동작 방법.
KR1020110073477A 2011-07-25 2011-07-25 외부 인트린직 인터페이스 Active KR101849702B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020110073477A KR101849702B1 (ko) 2011-07-25 2011-07-25 외부 인트린직 인터페이스
US13/398,305 US9519488B2 (en) 2011-07-25 2012-02-16 External intrinsic interface
US15/375,874 US10102005B2 (en) 2011-07-25 2016-12-12 External intrinsic interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110073477A KR101849702B1 (ko) 2011-07-25 2011-07-25 외부 인트린직 인터페이스

Publications (2)

Publication Number Publication Date
KR20130012338A KR20130012338A (ko) 2013-02-04
KR101849702B1 true KR101849702B1 (ko) 2018-04-17

Family

ID=47598251

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110073477A Active KR101849702B1 (ko) 2011-07-25 2011-07-25 외부 인트린직 인터페이스

Country Status (2)

Country Link
US (2) US9519488B2 (ko)
KR (1) KR101849702B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100998586B1 (ko) * 2002-04-10 2010-12-07 텐실리카 인코포레이티드 구성가능한 실행 유닛들을 구비한 고성능 하이브리드프로세서

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE505783C2 (sv) 1995-10-03 1997-10-06 Ericsson Telefon Ab L M Förfarande för att tillverka en digital signalprocessor
US5956415A (en) 1996-01-26 1999-09-21 Harris Corporation Enhanced security fingerprint sensor package and related methods
JP3623840B2 (ja) 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
KR20010061515A (ko) 1999-12-28 2001-07-07 박종섭 플래쉬 메모리 소자의 제조방법
ATE376211T1 (de) * 2000-02-09 2007-11-15 Texas Instruments Inc Gerät zur signalsynchronisierung zwischen zwei taktbereichen
US7098921B2 (en) 2001-02-09 2006-08-29 Activision Publishing, Inc. Method, system and computer program product for efficiently utilizing limited resources in a graphics device
GB2392742B (en) * 2002-09-04 2005-10-19 Advanced Risc Mach Ltd Synchronisation between pipelines in a data processing apparatus
US7590829B2 (en) * 2003-03-31 2009-09-15 Stretch, Inc. Extension adapter
US7574581B2 (en) 2003-04-28 2009-08-11 International Business Machines Corporation Cross-chip communication mechanism in distributed node topology to access free-running scan registers in clock-controlled components
US7827386B2 (en) 2003-06-30 2010-11-02 Intel Corporation Controlling memory access devices in a data driven architecture mesh array
US7293159B2 (en) * 2004-01-15 2007-11-06 International Business Machines Corporation Coupling GP processor with reserved instruction interface via coprocessor port with operation data flow to application specific ISA processor with translation pre-decoder
JP2004288203A (ja) 2004-04-19 2004-10-14 Toshiba Corp プロセッサコア及びこれを用いたプロセッサ
US7546441B1 (en) * 2004-08-06 2009-06-09 Xilinx, Inc. Coprocessor interface controller
US7664928B1 (en) * 2005-01-19 2010-02-16 Tensilica, Inc. Method and apparatus for providing user-defined interfaces for a configurable processor
US20060179273A1 (en) 2005-02-09 2006-08-10 Advanced Micro Devices, Inc. Data processor adapted for efficient digital signal processing and method therefor
JP2006243838A (ja) 2005-02-28 2006-09-14 Toshiba Corp プログラム開発装置
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US8095699B2 (en) * 2006-09-29 2012-01-10 Mediatek Inc. Methods and apparatus for interfacing between a host processor and a coprocessor
JP2010250662A (ja) 2009-04-17 2010-11-04 Yamaha Corp デジタル信号処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100998586B1 (ko) * 2002-04-10 2010-12-07 텐실리카 인코포레이티드 구성가능한 실행 유닛들을 구비한 고성능 하이브리드프로세서

Also Published As

Publication number Publication date
KR20130012338A (ko) 2013-02-04
US20130031336A1 (en) 2013-01-31
US10102005B2 (en) 2018-10-16
US20170090943A1 (en) 2017-03-30
US9519488B2 (en) 2016-12-13

Similar Documents

Publication Publication Date Title
US9710276B2 (en) Execution of instruction loops using an instruction buffer
JP4678623B2 (ja) 非対称型異種混合マルチプロセッサ環境(asymmetric heterogeneous multiprocessor environment)におけるメモリバリア要素(Primitive)
KR100900364B1 (ko) 인스트럭션 실행 디바이스, 인스트럭션 실행 방법 및 컴퓨터 판독가능 메모리 매체
US8086832B2 (en) Structure for dynamically adjusting pipelined data paths for improved power management
JP2001092660A (ja) ライトアフターライトデータハザードにより生じるエラーを効率的に防止するためのスーパースケーラ処理システム及び方法
EP2523099B1 (en) Method for selective routing of local memory accesses and device thereof
CN102799419B (zh) 寄存器写冲突检测方法及装置、以及处理器
CN108628693B (zh) 处理器调试方法和系统
KR20130036252A (ko) 멀티쓰레딩된 프로그램의 저전력 실행
JP3756410B2 (ja) 述語データを提供するシステム
KR101849702B1 (ko) 외부 인트린직 인터페이스
CN110603521A (zh) 超线程处理器
US10503471B2 (en) Electronic devices and operation methods of the same
US9582286B2 (en) Register file management for operations using a single physical register for both source and result
US8443030B1 (en) Processing of floating point multiply-accumulate instructions using multiple operand pathways
CN115269011A (zh) 指令执行单元、处理单元及相关装置和方法
JP6926727B2 (ja) 演算処理装置および演算処理装置の制御方法
JP2014175005A (ja) 命令処理方法及び命令処理装置
JP5207374B2 (ja) データ処理装置
KR102724459B1 (ko) 데이터 입출력 유닛, 전자 장치 및 그 제어 방법들
JP5467172B1 (ja) 情報処理システム、および情報処理方法
JP6138482B2 (ja) 組み込みシステム
US7490226B2 (en) Method using vector component comprising first and second bits to regulate movement of dependent instructions in a microprocessor
JP5585304B2 (ja) データ処理装置、メモリアクセス制御方法及びメモリアクセス制御プログラム
JP2011197774A (ja) プロセッサシステム

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20110725

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20160725

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20110725

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20170220

Patent event code: PE09021S01D

E90F Notification of reason for final refusal
PE0902 Notice of grounds for rejection

Comment text: Final Notice of Reason for Refusal

Patent event date: 20170829

Patent event code: PE09021S02D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20180129

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20180411

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20180412

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20210315

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20220314

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20230313

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20240318

Start annual number: 7

End annual number: 7