KR100369480B1 - Dsp 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐 - Google Patents
Dsp 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐 Download PDFInfo
- Publication number
- KR100369480B1 KR100369480B1 KR10-2001-0008063A KR20010008063A KR100369480B1 KR 100369480 B1 KR100369480 B1 KR 100369480B1 KR 20010008063 A KR20010008063 A KR 20010008063A KR 100369480 B1 KR100369480 B1 KR 100369480B1
- Authority
- KR
- South Korea
- Prior art keywords
- program
- dsp core
- rom
- address
- architecture
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7853—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) including a ROM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F2015/761—Indexing scheme relating to architectures of general purpose stored programme computers
- G06F2015/763—ASIC
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/10—Aspects relating to interfaces of memory device to external buses
- G11C2207/104—Embedded 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)
- Microcomputers (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 초대규모 집적회로(VLSI)의 아키텍쳐에 있어서 DSP 코어를 기반으로 하는 주문형반도체(ASIC)을 위한 다중 프로그램 실장 아키텍쳐에 관한 것이다.
본 발명은 다중 소프트웨어 실장을 위한 프로그램 메모리의 인터페이스 구조를 갖는 다중 프로그램 실장 아키텍쳐에 있어서, 프로그램 어드레스를 발생하며, 외부로부터 각종 프로그램 데이터 신호를 입력받는 DSP코어와; 상기 DSP코어로부터 발생되는 프로그램 어드레스를 소정 개수로 분할하여 저장함과 더불어 각 프로그램의 어드레싱을 수행하는 프로그램 롬과; 외부 패드로부터 모드 신호를 입력받아 상기 프로그램 롬의 칩 선택신호를 제어함과 더불어 프로그램 어드레스 모드를 제공하는 칩선택제어부로 구성된 것을 특징으로 하는 DSP 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐가 제공된다.
따라서, 본 발명에 의하면 1) 여러 개의 프로그램을 하나의 칩에 내장함으로서 외부 모드 설정만을 변경하여 여러가지 기능을 갖는 칩을 제조할 수 있다. 2) 기존에 인터럽트 루틴을 처리하는 경우 발생하던 사이클의 증가에 의한 수행능력의 감소를 방지할 수 있다. 3) 각 프로그램 관련 소프트웨어를 프로그램 롬에 내장하는 경우 각 소프트웨어 내부에 절대 어드레스를 사용한 분기 루틴이 존재하더라도 이를 위한 수정이 필요없게 된다.
Description
본 발명은 초대규모 집적회로(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)
- 다중 소프트웨어 실장을 위한 프로그램 메모리의 인터페이스 구조를 갖는 다중 프로그램 실장 아키텍쳐에 있어서,프로그램 어드레스를 발생하며, 외부로부터 각종 프로그램 데이터 신호를 입력받는 DSP코어와;상기 DSP코어로부터 발생되는 프로그램 어드레스를 소정 개수로 분할하여 저장함과 더불어 각 프로그램의 어드레싱을 수행하는 프로그램 롬과;외부 패드로부터 모드 신호를 입력받아 상기 프로그램 롬의 칩 선택신호를 제어함과 더불어 프로그램 어드레스 모드를 제공하는 칩선택제어부로 구성된 것을 특징으로 하는 DSP 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐.
- 청구항 1에 있어서, 상기 프로그램 롬은 2Z개로 분할되어 K-bit로 구성되는프로그램 어드레스와 각각 연결되어 있는 것을 특징으로 하는 DSP 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐.
- 청구항 1 또는 청구항 2에 있어서, 상기 프로그램 롬은외부 패드로부터 모드 신호를 입력받아 프로그램 어드레스 모드 설정신호를 발생시키는 PCE부와;프로그램 어드레스 신호와 상기 PCE부로부터 프로그램 어드레스 모드 설정 신호를 입력받아 2z개의 CSN 신호를 발생시켜 해당 프로그램 롬을 인에이블시키는 CSG부를 더 포함하여 이루어진 것을 특징으로 하는 DSP 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐.
- 청구항 1에 있어서, 상기 프로그램 롬은 각 프로그램 모드에 의한 프로그램 어드레스 값에 따라 임의로 선택되는 1개 또는 2개 또는 3개 또는 4개의 프로그램 롬을 사용하는 것을 특징으로 하는 DSP 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐.
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 KR20020067751A (ko) | 2002-08-24 |
KR100369480B1 true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100656278B1 (ko) | 2006-02-17 | 2006-12-11 | 주식회사 노비타 | 감압밸브 |
Citations (3)
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 | 윤종용 | 메모리, 중앙 처리 장치, 그리고 디지털 신호 처리장치를 구비한 온-칩 시스템 |
-
2001
- 2001-02-19 KR KR10-2001-0008063A patent/KR100369480B1/ko not_active IP Right Cessation
Patent Citations (3)
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 | 윤종용 | 메모리, 중앙 처리 장치, 그리고 디지털 신호 처리장치를 구비한 온-칩 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR20020067751A (ko) | 2002-08-24 |
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 | |
US4870562A (en) | Microcomputer capable of accessing internal memory at a desired variable access time | |
US5893143A (en) | Parallel processing unit with cache memories storing NO-OP mask bits for instructions | |
JPH08106375A (ja) | 信号処理演算器 | |
WO2001027873A1 (en) | Programmable event counter system | |
EP1034472A2 (en) | An instruction decoder | |
EP0945783A2 (en) | Variable length register device | |
KR100287600B1 (ko) | 확장가능한레지스터를제공하는데이타처리시스템및그방법 | |
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 코어를 기반으로 하는 다중 프로그램 실장 아키텍쳐 | |
EP0327950A2 (en) | Address modification circuit | |
KR100237642B1 (ko) | 파이프라인 정지회로를 구비한 프로세서 | |
US5604876A (en) | Apparatus for handling differing data length instructions using either directly specified or indirectly specified data lengths | |
US20040024992A1 (en) | Decoding method for a multi-length-mode instruction set | |
EP0795827B1 (en) | Memory device and method for accessing memories of the memory device | |
US7032075B2 (en) | Instruction cache and microprocessor | |
US7197653B2 (en) | Microcontroller for fetching and decoding a frequency control signal together with an operation code | |
US6148373A (en) | Apparatus and methods for increasing memory utilization | |
US5864691A (en) | Central processing unit with a selector that bypasses circuits where processing is not required | |
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 | |
EP0177268A2 (en) | Programmable data path width in a programmable unit having plural levels of subinstructions sets | |
US20050272197A1 (en) | Semiconductor device |
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 |