KR20020067751A - Dsp 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐 - Google Patents

Dsp 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐 Download PDF

Info

Publication number
KR20020067751A
KR20020067751A KR1020010008063A KR20010008063A KR20020067751A KR 20020067751 A KR20020067751 A KR 20020067751A KR 1020010008063 A KR1020010008063 A KR 1020010008063A KR 20010008063 A KR20010008063 A KR 20010008063A KR 20020067751 A KR20020067751 A KR 20020067751A
Authority
KR
South Korea
Prior art keywords
program
rom
address
dsp core
program rom
Prior art date
Application number
KR1020010008063A
Other languages
English (en)
Other versions
KR100369480B1 (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 KR10-2001-0008063A priority Critical patent/KR100369480B1/ko
Publication of KR20020067751A publication Critical patent/KR20020067751A/ko
Application granted granted Critical
Publication of KR100369480B1 publication Critical patent/KR100369480B1/ko

Links

Classifications

    • 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
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7853Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) including a ROM
    • 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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • 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
    • G06F2015/761Indexing scheme relating to architectures of general purpose stored programme computers
    • G06F2015/763ASIC
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/104Embedded memory devices, e.g. memories with a processing device on the same die or ASIC memory designs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)
  • Microcomputers (AREA)

Abstract

본 발명은 초대규모 집적회로(VLSI)의 아키텍쳐에 있어서 DSP 코어를 기반으로 하는 주문형반도체(ASIC)을 위한 다중 프로그램 실장 아키텍쳐에 관한 것이다.
본 발명은 다중 소프트웨어 실장을 위한 프로그램 메모리의 인터페이스 구조를 갖는 다중 프로그램 실장 아키텍쳐에 있어서, 프로그램 어드레스를 발생하며, 외부로부터 각종 프로그램 데이터 신호를 입력받는 DSP코어와; 상기 DSP코어로부터 발생되는 프로그램 어드레스를 소정 개수로 분할하여 저장함과 더불어 각 프로그램의 어드레싱을 수행하는 프로그램 롬과; 외부 패드로부터 모드 신호를 입력받아 상기 프로그램 롬의 칩 선택신호를 제어함과 더불어 프로그램 어드레스 모드를 제공하는 칩선택제어부로 구성된 것을 특징으로 하는 DSP 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐가 제공된다.
따라서, 본 발명에 의하면 1) 여러 개의 프로그램을 하나의 칩에 내장함으로서 외부 모드 설정만을 변경하여 여러가지 기능을 갖는 칩을 제조할 수 있다. 2) 기존에 인터럽트 루틴을 처리하는 경우 발생하던 사이클의 증가에 의한 수행능력의 감소를 방지할 수 있다. 3) 각 프로그램 관련 소프트웨어를 프로그램 롬에 내장하는 경우 각 소프트웨어 내부에 절대 어드레스를 사용한 분기 루틴이 존재하더라도 이를 위한 수정이 필요없게 된다.

Description

DSP 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐{MULTIPLE PROJECT EMBEDDED ARCHITECTURE FOR DSP CORE BASED}
본 발명은 초대규모 집적회로(VLSI)의 아키텍쳐에 있어서 DSP 코어를 기반으로 하는 주문형반도체(Application Specific IC; ASIC)을 위한 다중 프로그램 실장 아키텍쳐에 관한 것이다.
일반적으로, 디지털 신호처리기(Digital Signal Processor; 이하 DSP) 코어를 사용하는 설계 목적은 해당 응용이 필요로 하는 요건들을 충족시키면서 최소한의 소비전력과 최소한의 면적을 갖는 칩(Chip)을 만드는데 있다. 이를 위해 해당 응용에 맞는 최적의 주변(peripheral) 장치를 포함하게 되고 해당 어플리케이션(application) 수행 코드가 저장되어 있는 프로그램 메모리로써 면적이 큰 램(RAM)보다는 면적이 작은 롬(ROM)을 사용하여 구현하게 된다.
프로그램 롬(program ROM)에 내장되는 소프트웨어의 개발은 DSP 응용 개발보드와 PC를 기초로 하는 개발환경에서 개발 되어지며 개발된 소프트웨어 코드는 프로그램 롬에 내장되게 된다. 또한, 소프트웨어 개발 이후에 새로운 어플리케이션에 관련된 소프트웨어가 개발되었을 경우 기존의 개발되어 있는 칩에서 프로그램 롬의 내용만 변경시킴으로서 새로운 기능을 갖는 칩을 개발할 수 있다는 장점을 갖는다. 이는 롬(ROM)의 내용만이 변경되고 나머지 부분의 동작 상태는 그대로 유지되므로 칩제조 후에도 칩 동작이 보장된다는 큰 장점을 갖는다.
도 1은 종래 프로그램 메모리의 인터페이스 회로 구조도를 나타낸 도면이다.
도 1를 살펴보면, DSP코어(10)와; 다수 개의 프로그램과 인터럽트 루틴(interrupt routine)이 구비된 프로그램 롬(20)으로 이루어지며, 프로그램 메모리의 인터페이스(I/F)는 DSP코어(10)와 프로그램 롬(20)간의 컴뮤니케이션을 수행할 수 있게 해주는 인터페이스를 나타낸다.
상기 DSP코어(10)는 프로그램 롬(20)으로 프로그램 어드레스(ProgramAddress; PA)와 프로그램 리드(Program Read; PR) 신호를 발생시켜준다. PA에 의해 지정된 프로그램 롬(20)의 내용은 프로그램 데이터(Program Data; PD)에 실리게 되어 DSP코어(10)에서 PD의 내용을 디코딩하여 이에 관련된 동작을 수행하게 된다.
대부분의 경우 프로그램 롬(20)에는 하나의 소프트웨어 코드가 실장되는 것이 일반적이나 도 1에서와 같이 여러 개의 프로그램을 위한 소프트웨어 코드를 하나의 프로그램 롬(20)에 실장시켜야 하는 경우도 존재하게 된다. 이러한 경우 하나의 칩을 사용하여 두 개 이상의 기능을 갖는 칩을 제조할 수 있다는 장점을 갖는다. DSP코어(10)를 사용하여 칩을 제조하는 경우 프로그램 롬(20)의 크기 결정은 현재의 프로그램에 사용될 소프트웨어의 크기에 의해 결정되기도 하나 차후에 진행될 프로그램의 소프트웨어 크기도 고려하여 설계되는 경우도 있다.
따라서, 차후에 사용될 소프트웨어 크기가 현재에 사용되는 소프트웨어의 크기보다 큰 경우 프로그램 롬(20) 상에는 여분의 공간이 남게되고 이 공간에 다른 기능을 갖는 소프트웨어를 실장할 수 있다. 이러한 경우 각 프로그램들은 프로그램 롬(20)의 서로 다른 어드레스 상에 위치하게 된다.
그러나, 주변장치로부터 DSP코어(10)로 인터럽트 요청이 발생되는 경우 프로그램 어드레스는 현재 수행중인 프로그램와는 관계없이 인터럽트 분기(interrupt branch) 루틴을 지정하게 된다. 인터럽트 분기 루틴에서는 현재 수행중인 프로그램을 검색하는 루틴과 검색된 프로그램을 위한 인터럽트 루틴으로 분기하기 위한 분기 루틴을 구성하게 된다. 현재 수행중인 프로그램의 검색은 수행할 프로그램 지정을 위한 외부 입력신호의 값을 모니터하여 알거나 프로그램 선택 레지스터의 값을 읽어 알 수 있다.
외부 입력 신호를 이용하는 방법은 프로그램 롬(20)에 실장될 프로그램이 4개 미만인 경우에 사용되게 된다. 프로그램 선택 레지스터를 사용하는 경우 프로그램 수행 초기에 외부 호스트 프로세서로부터 프로그램 선택 명령에 의해 초기화되고, 인터럽트 분기 루틴에서 현재 수행 중인 프로그램 검색을 위해 매번 읽게 된다. 프로그램 롬(20)에 실장될 프로그램의 수는 프로그램 선택 레지스터의 비트수에 따라 달라지게 되고, 일반적으로 외부 핀(pin)을 모니터하는 방법에 비해서 많은 수의 프로그램을 프로그램 롬(20)에 내장시킬 수 있다.
일반적으로 4개 이상의 프로그램을 실장하는 경우는 매우 드물며 외부 패드(pad)값을 모니터하는 방법을 많이 사용하게 된다. 현재 수행중인 프로그램의 검색이 완료된 후에는 현재 프로그램에 관련된 인터럽트 루틴으로 분기하여 해당 인터럽트 루틴을 수행하게 된다. 현재 수행중인 프로그램이 제 1프로그램인 경우 프로그램 어드레스(A1)으로 분기하여 제 1인터럽트 루틴을 수행하게 되고, 현재 수행중인 프로그램이 제 N프로그램인 경우 프로그램 어드레스(AN)으로 분기하여 인터럽트 루틴(N)을 수행하게 된다. 인터럽트 루틴의 수행을 마친 후에는 인터럽트 요청이 발생되었던 다음 프로그램 어드레스로 이동하여 수행하던 오퍼레이팅을 계속 수행하게 된다.
상기에서와 같이 종래의 아키텍쳐는 주변으로부터 인터럽트가 발생할 때 항시 인터럽트 루틴으로 분기하게 되고, 현재 수행중인 프로그램을 찾아내기 위한 프로그램 선택 루틴을 실행하게 된다. 이는 매번 주변으로부터 인터럽트 요청이 발생하는 경우마다 실행하게 되고, 프로그램 롬에 내장되어 있는 프로그램의 수가 많은 경우 프로그램 선택을 위한 수행 사이클이 증가하게 되어 인터럽트 처리 사이클을 증가시키게 된다. DSP코어부를 기반으로 하는 시스템은 주변과의 컴뮤니케이션을 위하여 대부분 인터럽트를 사용하므로 이러한 인터럽트 처리 사이클의 증가는 매번 주변으로부터 인터럽트가 요청될때 마다 누적되어 전체 시스템의 수행 능력을 저하시키게 된다.
또한, 각 프로그램 관련 소프트웨어를 개발하는 경우 각각의 소프트웨어는 개별적으로 개발되는 것이 일반적이다. 이후에 이들 소프트웨어들을 하나의 프로그램 롬에 병합하는 경우 각 소프트웨어들은 기존에 개발되었을 때와 다른 프로그램 어드레스를 가지고 프로그램 롬에 실장되게 된다. 만일, 소프트웨어에 절대 어드레스를 사용한 분기 루틴이 존재한다면 이를 일일이 프로그램 롬의 어드레스에 맞추어 수정해 주어야 하는 문제점이 발생하게 된다. 또한, 하나의 프로그램 롬에 여러 개의 프로그램 관련 소프트웨어를 링크시켜 주어야 하는 부가적인 작업과 인터럽트 분기 루틴을 작성해 주어야 하는 것과 같은 부가적인 작업이 필요하게 된다.
따라서, 본 발명은 상기한 문제점을 해결하기 위한 것으로서, 본 발명은 여러 개의 프로그램을 하나의 칩에 내장함으로서 외부 모드 설정만을 변경하여 여러가지 기능을 갖는 칩을 제조할 수 있도록 하는 데 그 목적이 있다.
또한, 본 발명은 인터럽트 루틴을 처리하는 경우 발생하던 사이클의 증가에 의한 수행능력의 감소를 방지할 수 있도록 하는 데 그 목적이 있다.
또한, 본 발명은 각 프로그램 관련 소프트웨어에 내장되어 있는 인터럽트 루틴을 해당 프로그램의 인터럽트 루틴으로 분기하기 위한 명령으로만 구성되게 함으로서 소프트웨어의 수정이 필요치 않도록 하는 데 그 목적이 있다.
상기한 본 발명의 목적을 달성하기 위한 기술적 사상으로써 본 발명은
다중 소프트웨어 실장을 위한 프로그램 메모리의 인터페이스 구조를 갖는 다중 프로그램 실장 아키텍쳐에 있어서,
프로그램 어드레스를 발생하며, 외부로부터 각종 프로그램 데이터 신호를 입력받는 DSP코어와;
상기 DSP코어로부터 발생되는 프로그램 어드레스를 소정 개수로 분할하여 저장함과 더불어 각 프로그램의 어드레싱을 수행하는 프로그램 롬과;
외부 패드로부터 모드 신호를 입력받아 상기 프로그램 롬의 칩 선택신호를 제어함과 더불어 프로그램 어드레스 모드를 제공하는 칩선택제어부로 구성된 것을 특징으로 하는 DSP 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐가 제공된다.
도 1은 종래 프로그램 메모리의 인터페이스 회로 구조도를 나타낸 도면
도 2는 본 발명에 따른 다중 소프트웨어 실장을 위한 프로그램 메모리의 인터페이스 구조를 나타낸 도면
도 3 내지 도 7은 본 발명에 따른 다양한 실시예로서 K=16, Z=2인 경우 1개에서부터 4개의 프로그램 롬을 사용하는 프로그램 메모리의 인터페이스 구조를 나타낸 도면
도 8은 본 발명에 따른 칩선택제어부의 상세 구조도를 나타낸 도면
<도면의 주요부분에 대한 부호의 설명>
10,100 : DSP코어 20,200 : 프로그램 롬(program ROM)
300 : 칩선택제어부
320 : PCE부(PROM Configuration Encoder)
340 : CSG부(Chip Select Generator)
이하, 본 발명의 실시예에 대한 구성 및 그 작용을 첨부한 도면을 참조하면서 상세히 설명하기로 한다.
도 2는 본 발명에 따른 다중 소프트웨어 실장을 위한 프로그램 메모리의 인터페이스 구조를 나타낸 도면이다.
도 2를 살펴보면, 프로그램 어드레스를 발생하며 외부로부터 각종 프로그램 데이터 신호를 입력받는 DSP코어(100)와, 2Z개로 분할된 프로그램 롬(200)과, 상기 프로그램 롬(200)의 칩 선택 신호를 제어하기 위한 칩선택제어부(300)로 구성되어 있다.
상기 DSP코어(100)에서 발생되는 프로그램 어드레스(Program Address; PA)가 K-bit로 구성되는 경우 2Z개로 분할된 프로그램 롬(200)의 입력 어드레스에는 PA[K-z-1:0]가 연결되어 각 프로그램 롬(200)의 어드레싱을 수행하게 되고, 칩선택제어부(300)에서는 PA[K-1:K-z]와 외부 패드로부터 MODE[2*z-1:0]이 입력되어 각 프로그램 롬(200)의 칩 선택신호를 제어하여 여러 프로그램 어드레싱 모드를 제공하게 된다.
이 때, 프로그램 롬(200)을 분할하여 사용하는 이유 중의 하나는 EDA 툴에서 생성할 수 있는 최대 크기의 롬(ROM) 크기보다 원하는 롬(ROM)의 크기가 큰 경우 롬(ROM)을 분할하여 사용해야 하기 때문이다.
또한, 하나의 프로그램 롬(200)을 사용하는 경우 데이터 리드(read)시의 전력소비 보다 작은 워드 크기를 갖는 프로그램 롬(200)을 읽을 때 소모되는 전력 소비량이 작게 되며, 여러 개의 프로그램을 하나의 칩에 내장하는 경우 기존의 아키텍쳐에서 발생되던 문제점을 해결할 수 있기 때문이다.
즉, 기존의 아키텍쳐에서와 달리 프로그램 어드레스 상의 가산기(adder)가 필요 없어지고, 프로그램 어드레스가 바로 프로그램 롬(200)의 어드레스에 연결되므로 프로그램 어드레스신호 상의 지연이 없어지게 된다. 또한, 분할된 프로그램 롬(200) 단위의 어드레싱을 수행할 수 있으며, PA 가산기가 필요없게 됨에 따라 가산기 오퍼랜드 레지스터가 필요 없어진다. 또한 단순한 외부 핀의 설정을 통하여 프로그램 롬(200)의 연산을 선택할 수 있다.
상기 프로그램 롬(200)의 CSN신호가 인에이블(enable)되는 경우 PA와 PRN 신호에 따른 프로그램 데이터(Program Data; PD)가 프로그램 데이터 버스에 실리게 된다. CSN신호가 디서블(diable)되는 경우 PA와 PRN신호의 상태와 관계없이 프로그램 롬(200) 상의 프로그램 데이터 버스는 Hi-Z 상태를 유지하게 된다.
상기 프로그램 롬(200)의 어드레스 라인이 PA[K-z-1:0]인 이유는 DSP 코어(100)에서 출력되는 프로그램 어드레스가 K비트로 구성되고, 프로그램 롬(200)이 총 2Z개로 분할되는 경우에 각 프로그램 롬(200)은 총 2K/2Z개의 워드로 구성된다. 따라서, 2K/2Z개의 워드를 어드레싱하기 위해서는 K-z개의 어드레스 비트가 필요하게 된다.
상기 칩선택제어부(300)는 각 프로그램 롬(200)의 칩선택 신호를 제어하여 각 프로그램 롬(200)의 액세스를 제어하는 역할을 수행한다. 각 프로그램 롬(200)에는 K-z개의 프로그램 어드레스 비트가 할당되어 있고, 나머지 z개의 상위 프로그램 어드레스 신호는 칩선택제어부(300)에 연결되는 값에 따라 액세스될 프로그램롬(200)을 선택하게 된다. 이러한 칩 선택신호의 제어는 프로그램 어드레스만으로서 제어되는 것이 아니라 외부 패드로부터 입력되는 MODE[2*z-1:0] 신호와 더불어 제어를 수행하게 된다.
도 3 내지 도 7은 본 발명에 따른 다양한 실시예로서 K=16, Z=2인 경우 1개에서부터 4개의 프로그램 롬을 사용하는 프로그램 메모리의 인터페이스 구조를 나타낸 도면이다.
도 3은 본 발명에 따른 제 1실시예를 나타내며, K=16, Z=2인 경우 분할된 프로그램 롬(200)의 아키텍쳐에서 제공하는 프로그램 어드레싱 모드에 대한 구조로서 도 2에 도시된 아키텍쳐와의 차이점은 프로그램 롬(200), 즉 각 프로그램 및 인터럽트 루틴이 2Z개로 분할되어 있지 않고, 4개의 프로그램 롬(200)으로 구성되어 있다. 물론 각 구성요소에 대한 동작은 상술한 바와 같다.
도 4a 내지 도 4d는 본 발명에 따른 제 2실시예를 나타내며, 각각 1개의 프로그램 롬(200)이 선택된 경우로서 각각의 프로그램 롬(200)에 서로 다른 프로그램 관련 소프트웨어가 내장되어 있다. 이는 소프트웨어의 크기가 분할된 프로그램 롬(200)의 크기와 같거나 작은 경우에 내장할 수 있으며, 발생가능한 프로그램 롬(200)의 선택 경우의 수는 2Z개이다. 이 때, 각 구성요소에 대한 동작은 상술한 바와 같다.
도 5a 내지 도 5c는 본 발명에 따른 제 3실시예를 나타내며, 각각 2개의 프로그램 롬(200)이 연속해서 선택된 경우로서 프로그램 관련 소프트웨어의 크기가하나의 프로그램 롬(200)의 크기 보다 크고, 2개의 프로그램 롬(200)의 크기 보다 작거나 같은 경우에 사용된다. 이 때, 각 구성요소에 대한 동작은 상술한 바와 같다.
도 6a 및 도 6b는 본 발명에 따른 제 4실시예를 나타내며, 3개의 프로그램 롬(200)이 연속해서 선택된 경우로서 프로그램 관련 소프트웨어의 크기가 2개의 프로그램 롬(200)의 크기 보다 크고, 3개의 프로그램 롬(200)의 크기 보다 작거나 같은 경우에 사용되게 된다. 이 때, 각 구성요소에 대한 동작은 상술한 바와 같다.
도 7은 본 발명에 따른 제 5실시예를 나타내며, 4개의 프로그램 롬(200)이 연속해서 선택된 경우로서 프로그램 관련 소프트웨어의 크기가 3개의 프로그램 롬(200)의 크기 보다 크고, 4개의 프로그램 롬(200)의 크기 보다 작거나 같은 경우에 사용되게 된다. 이 때, 각 구성요소에 대한 동작은 상술한 바와 같다.
상기에서와 같이 내장되는 프로그램 관련 소프트웨어의 크기에 따라 연속되어 사용되는 프로그램 롬(200)의 개수가 결정되게 된다. 총 2Z개로 분할된 프로그램 롬(200)에서 M개를 연속하여 사용하는 경우 발생가능한 선택의 수는 (2Z- M + 1)개가 된다. 상기와 같은 아키텍쳐에서 가질 수 있는 M값의 범위는 1에서 2Z까지이므로 상기 아키텍쳐에서 발생 가능한 모든 프로그램 어드레싱 모드의 수는 수학식 1과 같이 표현될 수 있다.
이러한 프로그램 어드레싱 모드를 커버하기 위해서는 외부 패드핀의 수가 2*z개가 필요하게 된다. 따라서, 외부의 패드 신호는 MODE[2*z-1:0]로 표현될 수 있다.
이 때, 도 2에서와 같이 M개의 프로그램 롬(200)이 연속적으로 사용되는 경우 인터럽트 루틴의 위치는 M번째의 프로그램 롬(200)에 내장되어 사용될 수 있다.
도 8은 본 발명에 따른 칩선택제어부의 상세 구조도를 나타낸 도면이다.
도 8를 살펴보면, PCE(PROM Configuration Encoder)부(320)와 칩선택발생기(Chip Select Generator; CSG)부(340)으로 구성되어 있다.
상기 PCE부(320)는 외부 패드로부터 MODE[2*z-1:0] 신호를 입력으로 하여비트로 구성된 프로그램 어드레싱 모드 설정신호를 발생시킨다. 프로그램 어드레싱 모드 설정신호는 사용될 프로그램 롬(200) 장치를 선택하는 역할을 수행한다. 즉, 프로그램 어드레싱 모드 설정 신호에 따라 하나의 프로그램 롬(200)을 기준으로 동작하는 프로그램 어드레싱 모드를 선택할 수 있으며, M개의 연속적인 프로그램 롬(200)을 기준으로 동작하는 프로그램 어드레싱 모드를 선택할 수 있다. 프로그램 롬(200)에 내장된 소프트웨어의 크기가 2개의 프로그램 램(200)을 필요로 하는 경우 소프트웨어가 2개의 프로그램 롬(200)에 분할되어 내장되게 된다. 이러한 신호는 칩 동작 초기에 설정되므로 CSN신호가 발생되는 경우의 지연에는 아무런 영향을 미치지 않게 된다.
PA[K-1:K-z] 신호와 프로그램 어드레싱 모드 설정 신호를 입력으로 하여 CSG부(340)에서는 2z개의 CSN 신호를 발생시켜 해당 프로그램 롬(200)을 인에이블시킨다. 프로그램 어드레싱 모드 설정신호에 의하여 연속적으로 사용 되어지는 프로그램 롬(200) SET가 결정되고, PA[K-1:K-z]에 의하여 개별적 프로그램 롬(200)이 선택되어 진다.
예컨대, K=16, z=2인 경우에는 각 프로그램 모드에 의한 프로그램 어드레스인 PA[15:14]의 값에 따라 선택되는 프로그램 롬(200)은 도 4 내지 도 7에서 상술된 바와 같다.
이상에서와 같이 본 발명에 의한 DSP 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐에 따르면 다음과 같은 이점이 있다.
첫째, 여러 개의 프로그램을 하나의 칩에 내장함으로서 외부 모드 설정만을 변경하여 여러가지 기능을 갖는 칩을 제조할 수 있다. 이는 기존의 아키텍쳐와는 달리 각 프로그램 관련 소프트웨어의 수정이 전혀 필요없게 된다.
둘째, 기존의 아키텍쳐에서 존재하던 인터럽트 분기 루틴이 각 프로그램 관련 소프트웨어에 개별적으로 내장되게 되고, 인터럽트 분기 루틴에서 각 프로그램을 선별하기 위한 루틴이 삭제됨으로서 기존에 인터럽트 루틴을 처리하는 경우 발생하던 사이클의 증가에 의한 수행능력의 감소를 방지할 수 있다.
셋째, 각 프로그램 관련 소프트웨어에 내장되어 있는 인터럽트 분기 루틴은 해당 프로그램의 인터럽트 루틴으로 분기하기 위한 명령으로만 구성되게 됨으로서기존의 소프트웨어의 수정이 전혀 필요치 않게 된다.
넷째, 기존의 아키텍쳐에서는 주변에서 인터럽트 요청을 하는 경우 인터럽트 루틴으로 분기한 후 각 프로그램 선별 루틴을 거쳐서 각 프로그램 관련 인터럽트 루틴으로 분기하였으나, 본 발명에 의한 아키텍쳐에서는 각 프로그램에 내장되어 있는 인터럽트 루틴으로 분기한 후 해당 프로그램의 인터럽트 루틴으로 분기할 수 있다. 이때 기존의 프로그램 선별을 위한 루틴이 삭제되어 인터럽트 요청을 처리하는 경우 발생하였던 사이클의 증가에 따른 실행 능력의 감소를 방지할 수 있다.
다섯째, 각 프로그램 관련 소프트웨어를 프로그램 롬에 내장하는 경우 각 소프트웨어 내부에 절대 어드레스를 사용한 분기 루틴이 존재하더라도 이를 위한 수정이 필요없게 된다. 또한, 인터럽트 분기 루틴의 작성이 필요 없어지게 되며, 프로그램 관련 소프트웨어의 수정이 전혀 필요치 않게 된다.

Claims (4)

  1. 다중 소프트웨어 실장을 위한 프로그램 메모리의 인터페이스 구조를 갖는 다중 프로그램 실장 아키텍쳐에 있어서,
    프로그램 어드레스를 발생하며, 외부로부터 각종 프로그램 데이터 신호를 입력받는 DSP코어와;
    상기 DSP코어로부터 발생되는 프로그램 어드레스를 소정 개수로 분할하여 저장함과 더불어 각 프로그램의 어드레싱을 수행하는 프로그램 롬과;
    외부 패드로부터 모드 신호를 입력받아 상기 프로그램 롬의 칩 선택신호를 제어함과 더불어 프로그램 어드레스 모드를 제공하는 칩선택제어부로 구성된 것을 특징으로 하는 DSP 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐.
  2. 청구항 1에 있어서, 상기 프로그램 롬은 2Z개로 분할되어 K-bit로 구성되는프로그램 어드레스와 각각 연결되어 있는 것을 특징으로 하는 DSP 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐.
  3. 청구항 1 또는 청구항 2에 있어서, 상기 프로그램 롬은
    외부 패드로부터 모드 신호를 입력받아 프로그램 어드레스 모드 설정신호를 발생시키는 PCE부와;
    프로그램 어드레스 신호와 상기 PCE부로부터 프로그램 어드레스 모드 설정 신호를 입력받아 2z개의 CSN 신호를 발생시켜 해당 프로그램 롬을 인에이블시키는 CSG부를 더 포함하여 이루어진 것을 특징으로 하는 DSP 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐.
  4. 청구항 1에 있어서, 상기 프로그램 롬은 각 프로그램 모드에 의한 프로그램 어드레스 값에 따라 임의로 선택되는 1개 또는 2개 또는 3개 또는 4개의 프로그램 롬을 사용하는 것을 특징으로 하는 DSP 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐.
KR10-2001-0008063A 2001-02-19 2001-02-19 Dsp 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐 KR100369480B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0008063A KR100369480B1 (ko) 2001-02-19 2001-02-19 Dsp 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0008063A KR100369480B1 (ko) 2001-02-19 2001-02-19 Dsp 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐

Publications (2)

Publication Number Publication Date
KR20020067751A true KR20020067751A (ko) 2002-08-24
KR100369480B1 KR100369480B1 (ko) 2003-01-30

Family

ID=27694747

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0008063A KR100369480B1 (ko) 2001-02-19 2001-02-19 Dsp 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐

Country Status (1)

Country Link
KR (1) KR100369480B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337802B2 (en) 2006-02-17 2008-03-04 Novita Co., Ltd. Pressure reducing valve

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960035219A (ko) * 1995-03-03 1996-10-24 김광호 디지탈 신호 처리(dsp) 칩에서 입력포트 확장회로
JPH09190377A (ja) * 1996-01-12 1997-07-22 Oki Electric Ind Co Ltd メモリアクセス制御回路
KR19990084699A (ko) * 1998-05-09 1999-12-06 윤종용 메모리, 중앙 처리 장치, 그리고 디지털 신호 처리장치를 구비한 온-칩 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337802B2 (en) 2006-02-17 2008-03-04 Novita Co., Ltd. Pressure reducing valve

Also Published As

Publication number Publication date
KR100369480B1 (ko) 2003-01-30

Similar Documents

Publication Publication Date Title
US7343483B1 (en) Configuring both a programmable logic device and its embedded logic with a single serialized configuration bit stream
JPH08106375A (ja) 信号処理演算器
EP1234277A1 (en) Programmable event counter system
EP1034472A2 (en) An instruction decoder
US5964861A (en) Method for writing a program to control processors using any instructions selected from original instructions and defining the instructions used as a new instruction set
EP0945783A2 (en) Variable length register device
KR100287600B1 (ko) 확장가능한레지스터를제공하는데이타처리시스템및그방법
US20040172519A1 (en) Processor, system LSI circuit, method of designing same, and recording medium having said method recorded thereon
US7020787B2 (en) Microprocessor
JP2009032257A (ja) 有限状態機械制御コードを選択的に用いるプロセッサアーキテクチャ
JPH05165718A (ja) 処理システム
US7603542B2 (en) Reconfigurable electric computer, semiconductor integrated circuit and control method, program generation method, and program for creating a logic circuit from an application program
KR100369480B1 (ko) Dsp 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐
JPS61269444A (ja) デ−タ伝送方式
GB2435116A (en) Determining an instructions set based on the instruction address
EP0327950A2 (en) Address modification circuit
US4975837A (en) Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets
KR100237642B1 (ko) 파이프라인 정지회로를 구비한 프로세서
KR20000061574A (ko) 압축 명령을 갖는 마이크로 컴퓨터 시스템
US20040024992A1 (en) Decoding method for a multi-length-mode instruction set
KR940002478B1 (ko) 정보 처리장치
US7197653B2 (en) Microcontroller for fetching and decoding a frequency control signal together with an operation code
EP0305752B1 (en) Programmable data path width in a programmable unit having plural levels of subinstruction sets
US6243798B1 (en) Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction
US5864691A (en) Central processing unit with a selector that bypasses circuits where processing is not required

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: 20120109

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20130110

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee