KR100410557B1 - 프로그램 수정 가능한 마이크로컨트롤러 및 구동방법 - Google Patents

프로그램 수정 가능한 마이크로컨트롤러 및 구동방법 Download PDF

Info

Publication number
KR100410557B1
KR100410557B1 KR10-2001-0071827A KR20010071827A KR100410557B1 KR 100410557 B1 KR100410557 B1 KR 100410557B1 KR 20010071827 A KR20010071827 A KR 20010071827A KR 100410557 B1 KR100410557 B1 KR 100410557B1
Authority
KR
South Korea
Prior art keywords
address
signal
memory
microcontroller
program
Prior art date
Application number
KR10-2001-0071827A
Other languages
English (en)
Other versions
KR20030041191A (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-0071827A priority Critical patent/KR100410557B1/ko
Priority to US10/298,550 priority patent/US20030097618A1/en
Publication of KR20030041191A publication Critical patent/KR20030041191A/ko
Application granted granted Critical
Publication of KR100410557B1 publication Critical patent/KR100410557B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 버그를 수정하기 위한 제작 기간을 단축하고 제품의 수율을 향상시키기 위하여 중앙처리장치의 패치 신호를 이용한 코드 메모리 수정 장치를 구비한 마이크로 콘드롤러 및 그 코드 메모리 수정 방법을 제공하기 위한 것으로, 이를 위한 본 발명의 마이크로 컨트롤러는, 데이터 버스와 어드레스 버스; 마이크로 컨트롤러를 동작시키기 위한 프로그램을 저장하는 제1 메모리; 외부의 메모리로부터 버그 수정된 프로그램을 입력받는 제2 메모리; 및 상기 외부 메모리에서 입력받은 제1 어드레스 신호와 상기 제1 메모리에서 입력받은 제2 어드레스 신호가 일치할 때에, 중앙처리장치의 패치 신호에 맞추어 상기 제2 메모리의 프로그램을 실행시키는 명령어 신호를 발생시키는 수정수단를 포함하여 이루어진다. 또한, 상기 목적을 달성하기 위한 본 발명의 마이크로 컨트롤러 구동방법은 마이크로 컨트롤러를 동작시키기 위한 프로그램을 제1 메모리에 저장하는 단계; 외부 메모리로부터 버그 수정된 프로그램을 제2 메모리로 저장하는 단계; 상기 외부 메모리에서 입력받은 제1 어드레스와 상기 제1 메모리에서 입력받은 제2 어드레스를 비교하는 어드레스 비교 단계; 상기 제1 어드레스 및 제2 어드레스의 신호가 일치하면 중앙처리장치의 패치 신호에 응답하여 상기 버그 수정된 프로그램을 실행하기 위한 명령어 신호를 중앙처리장치로 발생시키는 단계를 포함하여 이루어진다.

Description

프로그램 수정 가능한 마이크로컨트롤러 및 구동방법{Microcontroller with program patching capability and method for operating the same }
본 발명은 마이크로프로세서(Microprocessor)에 관한 것으로, 특히 마이크로콘트롤러(Microcontroller)에 관한 것으로 더욱 상세하게는, 중앙처리장치(Central Processing Unit; 이하 CPU라 함)의 패치(Fetch) 신호를 이용한 코드 메모리 수정 장치 및 그 방법에 관한 것이다.
마이크로프로세서는 컴퓨터의 중앙처리장치를 단일 IC(Integrated Circuit) 칩에 집적시켜 만든 반도체 소자로서, 1971년에 미국의 Intel사에 의하여 세계 최초로 만들어졌으며 오늘날은 이를 흔히 MPU(MicroProcessor Unit)라고 부르기도 한다.
즉, 마이크로프로세서는 CPU의 여러 형태중에서 1개의 소자로 만들어진 종류이므로, 모든 마이크로프로세서는 CPU이지만 모든 CPU가 곧 마이크로프로세서인 것은 아니다. 그러나, 이를 MPU라고 부를 때는 이것이 곧 마이크로프로세서를 의미한다. 이것은 일반 컴퓨터의 중앙처리장치에서 주기억장치를 제외한 연산장치, 제어장치 및 각종 레지스터들을 단지 1개의 IC 소자에 집적시킨 것이므로 연산, 제어, 판단, 기억, 계시, 프로그램에 의한 처리 등의 기본적인 처리기능은 일반 중 대형 컴퓨터의 CPU에 비하여 별로 다를 바가 없다.
한편, 이와 같은 마이크로프로세서를 CPU로 사용하여 만든 소형 컴퓨터를 마이크로컴퓨터(Microcomputer)라고 한다. 이에 비하여 미니컴퓨터 이상의 중대형 컴퓨터에서는 CPU를 많은 소자를 사용하여 전용으로 설계하게 된다. 마이크로컴퓨터에서처럼 마이크로프로세서를 사용하여 컴퓨터를 설계하면 CPU가 하나의 IC 소자로 간단히 구성되므로 전체 시스템이 소형경량화되고, 소비전력이 적어지며, 가격이 낮아질 뿐만 아니라 부품수가 적어서 시스템의 신뢰성이 높아지는 등의 장점을 갖는다.
이와 같은 마이크로컴퓨터가 대형이나 미니컴퓨터와 구별되는 가장 큰 구조상의 특징은 CPU로서 마이크로프로세서를 사용한다는 것인데, 최근에는 미니컴퓨터급에 마이크로프로세서를 사용하는 경우가 점점 많아지고 있어서 이들의 분류기준이 모호해지고 있다. 또한, 이처럼 마이크로컴퓨터의 성능이 크게 향상되어 수퍼마이크로화함에 따라 미니컴퓨터의 입지는 점점 좁아지고 있다.
이에 반하여, 마이크로콘트롤러는 마이크로프로세서 중에 1개의 칩내에 CPU 기능은 물론이고 일정한 용량의 메모리(ROM, RAM 등)와 입출력 제어 인터페이스 회로까지를 내장한 것을 특별히 마이크로콘트롤러라고 부른다. 이것은 일반 마이크로프로세서가 널리 사용되기 시작하면서 1970년대 중반부터 나타난 형태로서 범용의 목적보다는 기기 제어용에 주로 사용되므로 붙여진 이름이며, 이는 1개의 소자만으로 완전한 하나의 컴퓨터 기능을 갖추고 있으므로 "단일 칩 마이크로컴퓨터(one-chip 또는 single-chip microcomputer)"라고도 부른다.
제어 응용 시스템에 마이크로콘트롤러를 사용하게 되면 범용 마이크로프로세서나 하드웨어 논리를 사용하는데 비하여 다음과 같은 장점을 얻을 수 있다.
① 제품이 소형경량화된다. 시스템의 콘트롤러 부분이 마이크로콘트롤러 LSI 1개와 극히 소수의 외부 소자들도 간단히 구성되므로 크기와 무게가 현저히 줄어들고 소비전력도 적어진다. 이에 따라 부수적으로 전원장치까지도 소형경량화된다.
② 제품의 가격이 싸진다. 콘트롤러 부분이 단순화됨에 따라 부품비, 제작비, 개발비가 감소되고, 개발기간도 단축된다.
③ 시스템의 신뢰성이 향상된다. 콘트롤러가 단순화되어 부품수가 적어지고 신뢰도가 높은 소자를 사용하므로 고장률이 감소하며 유지보수가 용이해진다.
④ 시스템의 융통성이 커진다. 하드웨어에 의존하는 부분을 소프트웨어로 처리할 수 있게 되므로 기능의 변경이나 확장에 보다 유연하게 대응할 수 있다.
종래의 마이크로콘트롤러는 CPU 기능에다 한정된 용량의 메모리(기본적으로 SRAM을 가지고 있으며 EPROM, 또는 플래시 메모리를 함께 내장하는 모델도 있음)와 인터럽트 제어기, 직렬 및 병렬 인터페이스, 카운터/타이머 등을 내장하는 정도에 불과하였으나, 최근에는 DMA 제어기와 같은 고성능의 I/O 기능, 고속의 직렬통신 기능, A/D 컨버터, PWM 출력, PLL 회로 등을 내장하여 각종 제어 시스템에 사용하기에 보다 편리해지고 있다.
이와 같이 오늘날의 마이크로콘트롤러는 각 응용분야에 적합하도록 매우 많은 종류와 모델이 개발 사용되고 있으며, 범용 마이크로프로세서를 지칭하는 MPU와 구별하여 MCU (MicroController Unit 또는 MicroComputer Unit)라고 부르기도 한다.
도 1a은 종래의 마이크로콘트롤러 내부를 개략적으로 도시한 블럭도이다.
도 1a을 도시된 바와 같이, 롬(Read Only Memory, 1)과 램(Random Access Memory, 2), 데이터버스(data bus, 4), 어드레스버스(address bus, 5) 및 CPU(3)를 구비한다. 이어서 동작을 살펴보면, CPU(3)가 마이크로콘트롤러의 동작을 수행하는 프로그램 및 데이터가 저장된 롬에 원하는 주소를 보낸다. 롬의 데이터는 데이터버스를 이용하여 CPU로 입력되고 CPU는 입력받은 데이터를 처리하여 램에 저장하거나기타의 처리를 하게 된다.
통상의 마이크로콘트롤러의 동작을 위한 프로그램은 롬에 저장된다. 롬으로 프로그램 코드를 삽입하는 방법은 반도체 공정 시에 이루어지게 된다. 제품의 제작시 프로그램 코드들은 미리 테스터 프로그램을 통하여 검증을 하고 검증이 끝난 상태로 코드로 만들어져서 반도체 공정을 통하여 CPU에 탑재되게 된다.
그러나, 만일 반도체 공정시 보낸 코드에서 프로그램의 버그가 발견되거나 사용 중에 버그가 발견된 경우에, 이를 수정하는 방법은 오직 다시 반도체 공정을 거쳐서 칩을 새로 제작하는 것인데, 이 과정은 많은 비용 문제와 반도체 공정의 제작 기간이 예컨대, 2~3 개월에 달하는 긴 과정을 통해야 하므로 시간적인 손실이 발생할 뿐만 아니라 새로이 수정을 한다 하여도 이미 만들어진 제품에 대해서는 사용이 불가능하게 된다.
이처럼 이미 제작된 칩에서 발견된 프로그램의 버그는 롬에 저장되므로 수정이 어려울 뿐 아니라 제작되어진 칩들은 사용하지 못하는 경우가 발생하고, 신규제작의 경우에도 많은 시간이 소요되므로 마이크로콘트롤러를 이용한 제품의 제작에 많은 시간을 허비하게 된다.
이에 비해, 대규모 프로그램의 버그가 아닌 수 바이트의 코드만을 수정함으로써 해결이 가능한 프로그램의 버그라면, 칩을 새롭게 제작하지 않고 수정할 수 있는 방법이 있다면 유용할 것이다. 이를 사용하는 방법이 도시된 도면이 도1b 이다.
도1b를 살펴보면, 도1a의 구성에서 프로그램이 가능한 롬(7), 레지스터(8),비교기(9)를 더 구비한다. 마스크롬의 제작이 후 마스크롬에 저장된 프로그램의 버그가 발견될 시에는 버그가 발생한 프로그램의 코드 부분을 수정하여 프로그램이 가능한 롬(7)에 저장을 시킨다. 시스템이 초기 동작을 시작할 때 버그가 수정된 프로그램의 어드레스가 데이터버스(4)를 통하여 레지스터(8)에 입력이 된다.
비교기(9)가 시스템 동작 중에 중앙처리장치(3)의 내부에 있는 프로그램 카운터(6)의 내용을 어드레스 버스(5)를 통하여 입력받고, 한편으로는 레지스터(8)의 내용을 입력받아 양신호가 일치하면 중앙처리장치(3)에 인터럽터 신호를 발생시킨다. 인터럽터 신호가 발생되면 중앙처리장치(3)는 마스크롬(1)의 내용을 입력받지 않고, 수정된 프로그램이 저장된 롬(7)에서 데이터버스(4)를 통하여 버그가 수정된 프로그램을 입력받아 수행하게 된다.
이에, CPU의 인터럽터를 사용하지 않으면서도 마이크로 컨트롤러가 마스크롬의 버그를 수정하여 프로그램을 수행할 수 있는 구조 및, 마스크롬에 버그가 발견된 프로그램이 여러곳에서 발생하였을 때, 모든 곳의 버그가 수정된 프로그램을 마이크로 컨트롤러가 효율적으로 수행하는 보다 구체적인 시스템이 필요하다.
본 발명은 버그를 수정하기 위한 제작 기간을 단축하고 제품의 수율을 향상시키기 위하여, 버그가 발견되었을 때 칩을 새로 제작하지 않고 버그 부분을 수정된 프로그램으로 실행 시킬수 있는 마이크로 콘드롤러 및 구동 방법을 제공하는데 그 목적이 있다.
또한 프로그램의 버그가 여러 곳에 발견되었을 때, 로직의 부담은 줄여주고 최소한의 메모리 공간으로 보다 효율적으로 수정할 수 있는 프로그램 수정 장치를 구비한 마이크로 콘드롤러 및 그 구동 방법을 제공하는데 그 목적이 있다.
도1a 내지 도1b는 종래의 마이크로 컨트롤러 내부 블럭도.
도2는 본 발명에 의한 마이크로 컨트롤러 내부를 나타내는 블럭도.
도3은 마이크로 컨트롤러 내부의 수정블럭을 나타내는 블럭도.
도4는 수정블럭 내부의 점프명령어 발생부를 나타내는 블럭도.
도5는 도2 내지 도4의 동작 타이밍을 나타내는 타이밍도.
도6는 다수개의 버그를 수정하는 마이크로 컨트롤러 내부를 나타내는 블럭도
도7은 도6에 의한 마이크로 컨트롤러 내부의 다중수정블럭을 나타내는 블럭도.
도8은 도7에 의한 다중수정블럭 내의 점프명령어 오피코드 발생부를 나타내는 블럭도.
도9는 전체 어드레스 비트를 저장할 때의 저장 공간을 계산한 블럭도.
도10은 뱅크어드레스를 사용할 때의 어드레스 포맷을 나타내는 블럭도.
도11은 뱅크어드레스를 사용할 때의 구역분할된 램의 메모리 메핑을 나타내는 블럭도.
도12는 뱅크어드레스를 사용할 때 어드레스 비트를 저장할 때의 저장 공간을 계산한 블럭도.
도13는 뱅크어드레스를 사용할 때 도7에 의한 어드레스 발생부를 나타내는 블럭도.
*도면의 주요 부분에 대한 부호의 설명
100 : 프로그램 가능한 외부 롬
200 : 마스크 롬
300 : 수정램
400 : 램
500 : 중앙처리장치
700 : 수정블럭
800 : 데이터 버스
900 : 어드레스 버스
701 : 롬 디스에이블 신호
상기 목적을 달성하기 위한 본 발명의 마이크로 컨트롤러는, 데이터 버스와 어드레스 버스; 마이크로 컨트롤러를 동작시키기 위한 프로그램을 저장하는 제1 메모리; 외부의 메모리로부터 버그 수정된 프로그램을 입력받는 제2 메모리; 및 상기 외부 메모리에서 입력받은 제1 어드레스 신호와 상기 제1 메모리에서 입력받은 제2 어드레스 신호가 일치할 때에, 중앙처리장치의 패치 신호에 맞추어 상기 제2 메모리의 프로그램을 실행시키는 명령어 신호를 발생시키는 수정수단를 포함하여 이루어진다.
또한, 상기 목적을 달성하기 위한 본 발명의 마이크로 컨트롤러 구동방법은 마이크로 컨트롤러를 동작시키기 위한 프로그램을 제1 메모리에 저장하는 단계; 외부 메모리로부터 버그 수정된 프로그램을 제2 메모리로 저장하는 단계; 상기 외부 메모리에서 입력받은 제1 어드레스와 상기 제1 메모리에서 입력받은 제2 어드레스를 비교하는 어드레스 비교 단계; 상기 제1 어드레스 및 제2 어드레스의 신호가 일치하면 중앙처리장치의 패치 신호에 응답하여 상기 버그 수정된 프로그램을 실행하기 위한 명령어 신호를 중앙처리장치로 발생시키는 단계를 포함하여 이루어진다.
본 발명은 마스크롬을 구비한 마이크로 컨트롤러에 내장된 마스크롬의 프로그램에 버그가 발생하였을 때에 수정하는 것에 관한 것이다. 먼저 버그가 발견된 코드가 존재하는 어드레스를 알아내어 마이크로 컨트롤러의 외부메모리에 수정된 코드를 저장한 다음 마이크로 컨트롤러에 연결하여 마이크로 컨트롤러가 초기 동작할 때 수정된 코드를 마이크로 컨트롤러 내부에 추가로 구비된 수정램(Correction RAM)에 입력시킨다.
이후, 마이크로컨트롤러 동작시 해당 버그가 발생한 어드레스를 만나면 수정램의 코드가 수행되도록 하는 것이다. 이렇게 하면 이미 만들어진 버그가 들어있는 마스크롬을 새로 제작하지 않고 사용할 수 있게 하는 것이다.
이를 자세히 살펴보면, 버그가 발생한 어드레스를 만났을 때 수정램의 코드가 수행되도록 하기 위하여 중앙처리장치에 명령어를 직접 발생시키는 수정블럭을 내장시킨다. 수정블럭은 마스크롬의 실행 어드레스와 버그가 발생한 어드레스를 비교하여 일치하면 새로운 명령어를 삽입하여 중앙처리장치가 다음 실행 어드레스로 수정램의 코드를 실행할 수 있는 명령어를 실행시킬수 있도록 하여 준다.
또한, 본 발명은 마스크롬의 프로그램에서 버그가 여러군데 발견되었을 때, 수정블럭이 마스크롬의 실행 어드레스와 버그가 발생한 모든 곳의 어드레스를 비교하여 하나라도 일치하면 수정램의 어드레스가 실행될 수 있도록 하는데 특징이 있다.
또한 수정램의 어드레스를 매핑하는 방법에 있어 일정한 블럭으로 나누고 뱅크를 이용하여 사용되는 어드레스의 저장 공간을 줄일 수 있는 데 특징이 있다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 설명하기로 한다.
도2 내지 도4는 본 발명의 일실시예에 따른 마이크로콘트롤러 내부를 개략적으로 도시한 블럭도이다.
도2에 도시된 바와 같이, 본 발명의 마이크로콘트롤러는 마이크로 컨트롤러를 동작시키기 위한 프로그램을 저장하는 롬(200)과, 마이크로 컨트롤러가 동작하는 동안 데이터를 저장하는 램(400)과, 롬(200)에 저장된 프로그램의 버그를 수정한 부분을 저장하는 프로그램 가능한 외부 롬(100)과, 마이크로 컨트롤러의 초기동작시 외부 롬(100)에서 버그 수정된 프로그램을 다운로딩 받는 수정램(300)과, 롬(200)의 실행 어드레스와 버그를 발견된 프로그램의 어드레스를 비교하여 일치할 때에는 롬(200)의 동작을 일시 중단시키고 수정램의 프로그램을 실행시키도록 명령어(예컨대 점프(jump)명령어)를 생성하는 수정블럭(700)과, 데이터버스(800)와 어드레스 버스(900)을 통하여 마이크로 컨트롤러의 동작을 제어하는 중앙처리장치(500)을 구비하여 구성된다. 도면에서 600은 수정블럭에서 롬의 정지신호를 반전시키기 위한 인버터이다.
이어서 도3에 도시된 바와 같이 수정블럭(700)은 어드레스 버스에 현재 실행되는 프로그램의 어드레스와 버그가 발견된 어드레스를 비교하는 비교기(710)와 중앙처리장치의 패치신호에 맞추어 실행 프로그램의 어드레스를 수정램으로 교환하는 명령어(예컨대 점프명령어, 이하 마이크로 컨트롤러의 실행가능한 명령어중 점프명령어를 가지고 설명한다.)를 발생하는 점프명령어 발생부(720)를 구비하여 구성된다.
이어서 도4에 도시된 바와 같이, 점프명령어 발생부(720)는 버그 발생한 프로그램의 어드레스를 비교기(710)가 감지할 때 출력하는 일치신호(701)와 중앙처리장치의 패치신호에 따라 점프명령어 발생을 제어하는 순차신호 발생기(722)와, 순차신호 발생기(722)의 제어신호에 따라 점프명령어의 오피코드(OP code)를 발생시키는 점프명령어 오피코드발생기와, 실행 어드레스를 발생시키는 어드레스 발생기(724)를 구비하여 구성된다. 721은 일치신호와 중앙처리장치의 패치신호에 따라 점프명령어를 출력하기 위한 앤드(and) 게이트 이다.
도5는 마이크로 컨트롤러가 실행 도중에 버그가 발견된 프로그램을 버그 수정된 프로그램으로 어드레스를 교환하는 타이밍도이다.
이하, 도2 내지 도5를 가지고 본 발명의 마이크로 컨트롤러의 동작을 설명한다.
마이크로 컨트롤러의 초기 동작시 칩 외부에 추가된 롬(100)에서 버그 수정된 프로그램을 칩내부의 수정램(300)으로 다운로딩시킨다. 이어서 중앙처리장치(500)의 제어신호에 따라 통상적인 동작순서에 따라 롬의 프로그램을 실행한다.
프로그램이 수행되는 도중에 수정블럭(700) 내부의 비교기(710)에서 롬(200)의 현재 실행되는 어드레스가 버그가 발견된 어드레스인지 계속해서 판단하고, 버그가 발견된 어드레스로 판단되면 일치신호(701)를 롬(200)에 출력한다. 이 일치신호(701)는 롬의 동작을 일시 정지시켜 버그가 발견된 프로그램이 계속 수행되는 것을 정지시키는 정지신호로 이용된다.
이어서 일치신호(701)와 중앙처리장치의 패치신호에 맞추어 실행 프로그램의 어드레스를 롬(200)에서 수정램(300)으로 교환하는 점프명령어를 수정블럭(700) 내부의 점프명령어 발생부(720)에서 발생시킨다.
중앙처리장치의 패치신호는 통상 실행 사이클이 각기 다른 마이크로컨트롤러의 명령어 실행동작을 동기시키기 위하여, 하나의 명령어를 실행한 후 다음 명령어 코드를 클럭에 맞추어 입력받기 위해서 사용되는 신호이다. 이는 최근의 다양한 중앙처리장치의 경우 프리패치 등의 다양한 기법을 사용하여 어떤 타이밍에 명령어가 발생하는지는 알기 어려우므로 중앙처리장치 내부의 패치 신호를 이용하여 명확한 타이밍 구현을 할 수 있도록 하기 위한 것이다.
상술한 점프 명령어에 대해서 살펴보면, 통상적인 마이크로 컨트롤러 점프명령어의 포멧(format)은 점프에 관한 오피코드와 점프할 곳의 어드레스로 구성된다. 여기서는 순차신호발생기(722)에서 제1 제어신호 및 제2 제어신호를 순차적으로 점프명령어 오피코드 발생기(723)와 어드레스 발생기(724)로 보내어 오피코드 발생기(723)에서 점프명령어의 오피코드를 발생시키고, 어드레스 발생기(724)에서 점프할 어드레스를 발생시켜 하나의 점프명령어를 구현한다.
또한 여기서, 점프명령어를 사용하지 않고 마이크로 컨트롤러에 따라 사용가능한 적절한 다른 명령어를 발생시켜 버그발생된 어드레스를 수정램의 어드레스로 전환하는데 사용할 수도 있다.
이어서, 도5의 동작타이밍도를 참조하여 설명하면, 중앙처리장치(500)가 실행하는 프로그램의 어드레스와 버그가 발견된 프로그램의 어드레스와 수정블럭(700)에서 비교하여 일치하면 수정램의 어드레스로 전환시키는 점프명령어를 중앙처리장치(500)의 패치신호에 맞추어 발생시키고, 롬(200)을 일시중단시킨다. 롬을 일시 중단시키는 것은 중앙처리장치의 프로그램카운터가 버그가 발견된 프로그램을 계속 실행하여 데이터 오류가 일어나는 것을 방지하기 위한 것이다.
롬(200)의 일시 중단은 점프 명령어의 발생부터 점프 어드레스의 발생이 끝나는 순간까지 즉, 하나의 점프 명령어가 수행되는 구간 동안 계속 이루어진다. 이렇게 하면 버그가 있는 롬(200)에서의 코드는 데이타버스로 보내지지 않게 되고, 이를 이용하여 프로그램의 순서를 버그가 수정된 수정램(300)으로 교환할 수 있는 것이다.
또한, 롬에 저장된 프로그램의 버그가 한 곳이 아니라 여러곳에서 발생할 수 도 있을 것이다. 도6 내지 도8는 롬에 저장된 프로그램의 버그가 다수 일때 다수의 버그 발생한 프로그램을 수정램으로 바꾸어서 수행할 수 있는 마이크로 컨트롤러를 도시한 것이다.
도6를 참조하여 설명하면, 마이크로 컨트롤러를 동작시키기 위한 프로그램을 저장하는 롬(200)과, 마이크로 컨트롤러가 동작하는 동안 데이터와 프로그램을 저장하는 램(400)과, 롬(200)에 저장된 프로그램의 다수 버그를 수정한 부분을 저장한 외부 프로그래밍 롬(100)과, 마이크로 컨트롤러의 초기동작시 외부 롬(100)에서버그 수정된 프로그램을 다운로딩 받는 구역분할된 수정램(300A)과, 롬(200)의 실행 어드레스와 버그를 수정한 프로그램의 어드레스를 비교하여 일치할 때에는 롬(200)의 동작을 일시 중단시키고(702) 수정램의 프로그램을 실행시키도록 명령어(예컨대 점프(jump)명령어)를 생성하는 다중수정블럭(700A)과, 데이터버스(800)와 어드레스 버스(900)을 통하여 마이크로 컨트롤러의 동작을 제어하는 중앙처리장치(500)을 구비하여 구성된다. 도면에서 600은 다중수정블럭(700A)에서 롬의 정지신호(702)를 반전시키기 위한 인버터이다.
이어서 도7를 참조하여 살펴보면, 도6의 다중수정블럭(700A)은 일치신호 및 수정된 어드레스를 출력하는 다수개의 어드레스 발생부(710A,720A,730A,740A...)와 중앙처리장치의 패치신호에 맞추어 실행 프로그램의 어드레스를 수정램으로 교환하는 점프명령어의 오피코드 신호 및 롬 일시 정지신호(702)를 발생하는 점프명령어 오피코드 발생부(750)를 구비하여 구성된다. 760은 다수개의 어드레스 발생부에서 어느 하나라도 버그 발견된 어드레스와 현재 실행 어드레스가 일치하면 일치신호(701A)를 발생시켜, 이후 점프명령어를 발생시키기 위한 로직구성된 다수 입력의 오알(OR) 게이트이다.
또한 어드레스 발생부(710A)은 어드레스 버스에 현재 실행되는 프로그램의 어드레스와 버그가 발견된 어드레스를 비교하여 일치하면 일치신호를 출력하는 비교기(711)와 수정램의 어드레스를 발생하는 어드레스 발생기(712)를 구비하여 구성된다.
이어서 도8를 참조하여 살펴보면, 점프명령어 오피코드 발생부(750)는 롬의프로그램이 버그 발생한 어드레스이면 발생하는 일치신호(701A) 및 중앙처리장치의 패치신호에 따라 점프명령어의 발생을 제어하는 순차제어신호 및 점프명령어 오피코드 발생 신호를 생성하는 순차신호 발생기(752)와, 순차신호 발생기(752)의 제어신호에 따라 점프명령어의 오피코드신호를 발생시키는 점프명령어 오피코드발생기(753)를 구비하여 구성된다. 751은 일치신호 및 중앙처리장치의 패치신호에 맞추어 점프명령어를 출력하기 위한 앤드(and) 게이트 이다.
이하 도6 내지 도8을 참조하여 롬(200)에 저장된 마이크로 컨트롤러를 구동하는 프로그램에서 다수개의 버그가 발견되었을 때에 버그가 수정된 프로그램을 수행하는 동작을 설명한다.
마이크로 컨트롤러의 초기 동작시 외부의 롬(100)에서 버그가 수정된 프로그램을 구역분할된 수정램(300A)으로 다운로딩시킨다. 이어서 중앙처리장치(500)의 제어신호에 따라 순차적으로 롬의 프로그램을 실행하면서, 다중수정블럭(700A) 내부의 구비된 다수의 어드레스 발생부(710A,720A,730A,740A...)중 어느 하나의 비교기(711)에서 중앙처리장치(500)에서 현재 실행되는 어드레스가 버그가 발견된 어드레스인지 판단하여 일치하면 다중수정블럭(700A)에서 일치신호와 중앙처리장치(500)의 실행 어드레스를 구역 분할된 수정램(300A)으로 옮기는 점프명령어를 출력한다.
상술한 점프명령어 발생을 자세히 살펴보면, 다중수정블럭(700A)의 점프명령어 오피코드 발생부는(750)은 다중수정블럭(700A)내의 다수개 어드레스 발생부(710A,720A,730A,740A,..)중에서 어느 하나에서 일치하여 일치신호(701A)가발생하면 중앙연산장치(500)의 패치신호에 맞추어 롬을 일시적으로 중단시키는 롬디스에이블 신호(702) 및 점프명령어의 오피코드를 발생시키고, 순차제어신호를 각 어드레스 발생부(710A,720A,730A,740A,..)로 출력한다.
이어서 다수개의 어드레스 발생부(710A,720A,730A,740A,..) 중에서 점프 명령어 오피코드 발생부(750)에서 출력되는 순차제어신호와, 내부의 비교기에서 출력되는 일치신호에 따라 특정된 하나의 어드레스 발생부에서 구역 분할된 수정램(300A)의 어드레스를 발생시키고, 이 어드레스와 점프명령어 오피 코드 발생기(753)에서 발생시키는 오피코드가 합쳐져서 점프명령어를 형성하게 된다.
또한, 점프명령어 오피 코드 발생부(750) 내부 동작을 살펴보면, 순차신호발생기(752)에서 일치신호(701A)와 중앙처리장치의 패치신호에 맞추어 점프명령어 오피코드 발생신호와 순차제어신호를 순차적으로 출력하고, 점프명령어 오피코드 발생신호는 점프명령어 오피코드발생기(753)로 입력되어 점프명령어의 오피코드를 발생하고, 순차제어신신호는 다수수정블럭(700A)내의 다수개의 어드레스 발생부(710A, 720A,730A,740A,..)로 입력된다. 다중수정블럭(700A) 내부에 구비된 다수개의 어드레스 발생부(710A,720A,730A,740A,..)는 상술한 순차제어신호와 내부에 구비된 비교기(711)에서 출력되는 일치신호에 맞추어 어드레스를 출력하게 된다.
롬디스에이블 신호(702)를 발생시키는 타이밍과 점프명령어를 발생시키는 타이밍은 도5의 타이밍도와 같다. 여기서도 또한 점프명령어를 사용하지 않고 마이크로 컨트롤러에 따라 적절한 다른 명령어를 사용할 수 있다.
상술한 다수개의 버그를 수정하기 위한 마이크로 컨트롤러는 점프명령어 발생 부에서 어드레스는 각각의 유닛을 이용하여 발생시키고 점프명령어의 오피코드는 공통으로 사용하는 점프명령어 오피코드발생부에서 발생시켜 회로 구현 면적을 줄이는 효과가 있다.
계속해서 도9를 참조하여 살펴보면, 점프되어야 할 어드레스는 각 유닛별로 저장하고 있다가 발생시켜야 하는데, n비트의 어드레스를 발생시켜야 한다면, 이 유닛에서 저장하고 있어야 할 데이타는 n비트가 된다. 수정 회로의 개수가 k개가 되는 경우의 저장 공간은 n * k 비트가 된다.
이에 본 발명에서는 어드레스 저장 공간을 줄이기 위하여 다음과 같은 블럭 단위의 접근 방식을 제안한다. 점프되어야 할 어드레스를 바이트 단위로 하지 않고 여러개의 바이트가 모여서 이루어지는 블럭 개념을 이용하면 저장 메모리를 줄일 수 있다.
이를 도10을 참조하여 살펴보면, 수정램의 어드레스의 n비트중에서 하위 m비트를 블럭을 지정하는 어드레스로 정하고 상위 n-m비트의 어드레스를 뱅크어드레스로 정하면, 실제 어드레스는 뱅크어드레스 * 2^m 가 된다.
즉, 저장 공간에는 (n-m) 비트의 데이타만을 저장하며, 어드레스를 발생시킬 때 하위 m비트에 대해사는 '0'으로 채워준다.(m비트 패딩(padding)) 이렇게 하면, 전체 수정램과 어드레스 매핑 과정이 2^m 바이트의 블럭 단위로 이루어지며, 여러개의 수정 유닛을 사용하는 경우의 전체 저장 공간은 (n-m) * k 비트가 된다.
도11은 구역분할된 수정램의 어드레스 매핑 과정이 나타나 있고, 도12는 전체전장 공간이 (n-m) * k 비트가 됨을 보여준다. 이어서, 도13에 다중수정블럭(700A) 내부의 수정된 어드레스 발생부(710A')가 도시되어 있다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
마이크로콘트롤러에 내장된 롬에 있는 프로그램에 수 바이트의 프로그램 버그가 발생하였을 때, 버그가 발생한 코드만을 수정램에 있는 데이터로 수정함으로써 제품제작 시간 및 비용의 문제를 해결할 수 있다.
또한 마이크로콘트롤러에 내장된 롬에 여러개의 코드가 수정되어야 할 때, 공통 점프 발생부를 포함한 여러개의 유닛을 공통적으로 사용하므로 최소한의 회로 면적으로서도 쉽게 수정된 프로그램이 작동하는 마이크로콘트롤러를 제작할 수 있다.
또한 마스크 롬에 내장된 프로그램이 버그가 아니더러도 일부분을 수정하고 싶을때 본 발명에 의하면 프로그램의 크기나 위치에 관계없이 용이하게 수정이 가능하다.

Claims (18)

  1. 데이터 버스와 어드레스 버스;
    마이크로 컨트롤러를 동작시키기 위한 프로그램을 저장하는 제1 메모리;
    외부의 메모리로부터 버그 수정된 프로그램을 입력받는 제2 메모리; 및
    상기 외부 메모리에서 입력받은 제1 어드레스 신호와 상기 제1 메모리에서 입력받은 제2 어드레스 신호가 일치할 때에, 중앙처리장치의 패치 신호에 맞추어 상기 제2 메모리의 프로그램을 실행시키는 명령어 신호를 발생시키는 수정수단
    를 포함하는 마이크로 컨트롤러.
  2. 제 1 항에 있어서,
    상기 제1 메모리는 롬을 포함하는 것을 특징으로 하는 마이크로 컨트롤러.
  3. 제 1 항에 있어서,
    상게 제2 메모리는 램을 포함하는 것을 특징으로 하는 마이크로 컨트롤러.
  4. 제 1 항에 있어서,
    상기 수정수단은,
    상기 제1 어드레스와 상기 제2 어드레스가 같으면 일치신호를 출력하는 비교기; 및
    상기 일치신호와 상기 패치신호를 입력받아 상기 제2 메모리의 프로그램을 실행시키는 명령어 신호를 출력하는 명령어발생부
    를 포함하는 것을 특징으로 하는 마이크로 컨트롤러.
  5. 제 4 항에 있어서,
    상기 명령어발생부는,
    상기 일치신호 및 상기 패치신호가 입력되면 제1 제어신호 및 제2 제어신호를 순차적으로 출력하는 코드순차발생기;
    상기 제1 제어신호를 입력받아 상기 명령어의 오피코드를 발생시키는 명령어 오피코드발생기; 및
    상기 제2 제어신호를 입력받아 상기 제2 메모리의 어드레스를 발생하는 어드레스발생기
    를 포함하는 것을 특징으로 하는 마이크로 컨트롤러.
  6. 제 5 항에 있어서,
    상기 명령어의 오피코드는 점프명령어인 것을 특징으로 하는 마이크로 컨트롤러.
  7. 제 1 항에 있어서,
    상기 수정수단은,
    상기 외부의 메모리에서 입력받은 제1 어드레스와 상기 제1 메모리에서 입력받은 제2 어드레스가 일치할 때에, 상기 제1 메모리의 동작을 일시중지시키는 것을 특징으로 하는 마이크로 컨트롤러.
  8. 제 1 항에 있어서,
    상기 수정수단은,
    상기 제1 어드레스 및 상기 제2 어드레스가 일치하면, 일치신호 및 상기 제 2 메모리의 어드레스 신호를 발생시키는 다수개의 수정 어드레스 전환부; 및
    상기 패치신호 및 상기 일치신호를 입력받아 상기 명령어의 오피코드 신호 및 상기 다수개의 수정 어드레스 전환부로 입력되는 순차제어신호를 발생시키는 공통오피코드발생부
    를 포함하는 것을 특징으로 하는 마이크로 컨트롤러.
  9. 제 8 항에 있어서,
    상기 수정 어드레스 전환부는,
    상기 제1 어드레스 및 상기 제2 어드레스의 신호를 입력받아 일치하면, 일치신호를 출력하는 비교기; 및
    상기 일치신호 및 상기 제어신호를 입력받아 상기 제2 메모리의 어드레스 신호를 발생시키는 어드레스 발생기
    를 포함하는 것을 특징으로 하는 마이크로 컨트롤러.
  10. 제 8 항에 있어서,
    상기 공통오피코드 발생부는,
    상기 일치신호 및 상기 패치신호가 입력되면 인에이블신호 및 상기 순차제어신호를 순차적으로 출력하는 제어신호 발생기; 및
    상기 인에이블 신호를 입력받아 상기 명령어의 오피코드를 발생시키는 명령어 오피코드발생기
    를 포함하는 것을 특징으로 하는 마이크로 컨트롤러.
  11. 제 10 항에 있어서,
    상기 명령어오피코드발생기는 점프명령어의 오피코드를 발생시키는 것을 특징으로 하는 마이크로 컨트롤러.
  12. 제 8 항에 있어서,
    상기 공통오피코드 발생부는,
    상기 패치신호 및 상기 일치신호가 입력되면 상기 제1 메모리의 동작을 중단 시키는 롬디스에이블 신호를 출력하는 것을 특징으로 하는 마이크로 컨트롤러.
  13. 제 9 항에 있어서,
    상기 어드레스 발생기는 상기 제2 메모리의 뱅크를 선택하기 위한 어드레스를 발생시키는 것을 특징으로 하는 마이크로 컨크롤러.
  14. 마이크로 컨트롤러를 동작시키기 위한 프로그램을 제1 메모리에 저장하는 단계;
    외부 메모리로부터 버그 수정된 프로그램을 제2 메모리로 저장하는 단계;
    상기 외부 메모리에서 입력받은 제1 어드레스와 상기 제1 메모리에서 입력받은 제2 어드레스를 비교하는 어드레스 비교 단계;
    상기 제1 어드레스 및 제2 어드레스의 신호가 일치하면 중앙처리장치의 패치 신호에 응답하여 상기 버그 수정된 프로그램을 실행하기 위한 명령어 신호를 중앙처리장치로 발생시키는 단계
    를 포함하는 마이크로 컨트롤러 구동방법.
  15. 제 14 항에 있어서,
    상기 제1 어드레스 및 제2 어드레스의 신호가 일치하면, 일시적으로 상기 제1 메모리를 중단시키는 단계를 더 포함하는 것을 특징으로 하는 마이크로 컨트롤러 구동방법.
  16. 제 15 항에 있어서,
    상기 명령어 신호는 점프명령어 신호를 이용하는 것을 특징으로 하는 마이크로 컨트롤러 구동 방법.
  17. 제 16 항에 있어서,
    상기 명령어는 오피코드부와 어드레스부로 이루어지며, 상기 오피코드부는 다수의 버그 수정된 프로그램의 어드레스를 실행시키는 모든 명령어에 대해서 공통으로 사용되는 것을 특징으로 하는 마이크로 구동방법.
  18. 제 17 항에 있어서,
    상기 명령어의 어드레스는 뱅크를 선택하기 위한 뱅크 어드레스임을 특징으로 하는 마이크로 컨크롤러 구동방법.
KR10-2001-0071827A 2001-11-19 2001-11-19 프로그램 수정 가능한 마이크로컨트롤러 및 구동방법 KR100410557B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2001-0071827A KR100410557B1 (ko) 2001-11-19 2001-11-19 프로그램 수정 가능한 마이크로컨트롤러 및 구동방법
US10/298,550 US20030097618A1 (en) 2001-11-19 2002-11-19 Microcontroller capable of correcting program codes and method for driving the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0071827A KR100410557B1 (ko) 2001-11-19 2001-11-19 프로그램 수정 가능한 마이크로컨트롤러 및 구동방법

Publications (2)

Publication Number Publication Date
KR20030041191A KR20030041191A (ko) 2003-05-27
KR100410557B1 true KR100410557B1 (ko) 2003-12-18

Family

ID=19716090

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0071827A KR100410557B1 (ko) 2001-11-19 2001-11-19 프로그램 수정 가능한 마이크로컨트롤러 및 구동방법

Country Status (2)

Country Link
US (1) US20030097618A1 (ko)
KR (1) KR100410557B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4194310B2 (ja) * 2002-07-19 2008-12-10 株式会社ルネサステクノロジ 電子装置
US7062598B1 (en) * 2003-04-29 2006-06-13 Advanced Micro Devices, Inc. Bypass custom array and related method for implementing ROM fixes in a data processor
US7716528B2 (en) * 2004-09-07 2010-05-11 Broadcom Corporation Method and system for configurable trigger logic for hardware bug workaround in integrated circuits
KR100717110B1 (ko) * 2006-02-21 2007-05-10 삼성전자주식회사 롬 데이터 패치 회로, 이를 포함하는 임베디드 시스템 및롬 데이터 패치 방법
JP5223200B2 (ja) * 2007-01-29 2013-06-26 富士ゼロックス株式会社 データ処理装置、その制御方法および画像処理装置
DE102007029116A1 (de) * 2007-06-25 2009-01-02 Continental Automotive Gmbh Verfahren zum Betreiben eines Mikrocontrollers und einer Ausführungseinheit sowie ein Mikrocontroller und eine Ausführungseinheit
JP5121671B2 (ja) * 2008-10-30 2013-01-16 株式会社東芝 画像処理プロセッサ
CN107341049B (zh) * 2017-07-03 2020-02-11 飞天诚信科技股份有限公司 一种事务处理的优化处理方法及装置
JP6494139B1 (ja) * 2018-01-11 2019-04-03 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN111381825B (zh) * 2020-03-06 2021-04-09 北京五八信息技术有限公司 一种小程序的生成方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03142629A (ja) * 1989-10-30 1991-06-18 Toshiba Corp マイクロコントローラ
KR980004049A (ko) * 1996-06-27 1998-03-30 배순훈 마이콤 버그 교정 방법
US5799144A (en) * 1996-05-31 1998-08-25 Mitsubishi Denki Kabushiki Kaisha Microcomputer for resolving problems found in a program stored in a ROM
KR20000050874A (ko) * 1999-01-15 2000-08-05 윤종용 플래시 롬을 이용한 에뮬레이터를 포함한 마이콤 개발 시스템 및 펌웨어 업그레이드 방법
WO2000050994A2 (en) * 1999-02-23 2000-08-31 Microchip Technology Incorporated Calibrating functions of an integrated circuit and storing calibration parameters thereof in a programmable fuse array

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01232447A (ja) * 1988-03-11 1989-09-18 Mitsubishi Electric Corp シングル・チップ・マイクロコンピュータ
JPH0244431A (ja) * 1988-08-05 1990-02-14 Nippon Motoroola Kk 保護命令取出し装置
US5357627A (en) * 1989-03-28 1994-10-18 Olympus Optical Co., Ltd. Microcomputer having a program correction function
JP3284614B2 (ja) * 1992-09-19 2002-05-20 ソニー株式会社 電子装置
JPH0764784A (ja) * 1993-08-31 1995-03-10 Nec Corp マイクロコンピュータ
JPH08166877A (ja) * 1994-12-13 1996-06-25 Olympus Optical Co Ltd 修正プログラムの実行可能なワンチップマイクロコンピュータ及びrom修正可能なマイクロコンピュータ
JP2000347862A (ja) * 1999-06-08 2000-12-15 Nec Corp 命令入換え回路
JP2001256044A (ja) * 2000-03-14 2001-09-21 Sony Corp データ処理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03142629A (ja) * 1989-10-30 1991-06-18 Toshiba Corp マイクロコントローラ
US5799144A (en) * 1996-05-31 1998-08-25 Mitsubishi Denki Kabushiki Kaisha Microcomputer for resolving problems found in a program stored in a ROM
KR980004049A (ko) * 1996-06-27 1998-03-30 배순훈 마이콤 버그 교정 방법
KR20000050874A (ko) * 1999-01-15 2000-08-05 윤종용 플래시 롬을 이용한 에뮬레이터를 포함한 마이콤 개발 시스템 및 펌웨어 업그레이드 방법
WO2000050994A2 (en) * 1999-02-23 2000-08-31 Microchip Technology Incorporated Calibrating functions of an integrated circuit and storing calibration parameters thereof in a programmable fuse array

Also Published As

Publication number Publication date
US20030097618A1 (en) 2003-05-22
KR20030041191A (ko) 2003-05-27

Similar Documents

Publication Publication Date Title
US9652241B2 (en) Data processing apparatus with instruction encodings to enable near and far memory access modes
KR100410557B1 (ko) 프로그램 수정 가능한 마이크로컨트롤러 및 구동방법
US6792527B1 (en) Method to provide hierarchical reset capabilities for a configurable system on a chip
US11231769B2 (en) Sequencer-based protocol adapter
JP5146451B2 (ja) ハードウエアエミュレーションシステムのプロセッサを同期化する方法及び装置
CN100545826C (zh) 一种微控制器
Rykunov Design of asynchronous microprocessor for power proportionality
US9805152B1 (en) Compilation of system designs
US6993674B2 (en) System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
GB2448488A (en) Processor which can conditionally inhibit trap, interrupt or exception events but inhibition means are not accessible by a running program
EP1177499B1 (en) Processor and method of executing instructions from several instruction sources
Chodorowski et al. IEC 61131-3 compliant PLC structure based on FPGA multi-core solution
KR100557518B1 (ko) 시스템 대규모 집적 회로, 그 설계 방법, 및 그에 대한프로그램
Yadav Microcontroller: features and applications
US20160170466A1 (en) Power saving multi-width processor core
EP2005316A2 (en) Rapid creation and configuration of microcontroller products with configurable logic devices
CN100511170C (zh) 评估芯片
Jelemensky et al. The MC68332 microcontroller
JP7276755B2 (ja) 処理速度整合回路およびマイクロプロセッサ
Bolado et al. Using open source cores in real applications
TWI683202B (zh) 數位波形訊號產生裝置
JP4633073B2 (ja) データ処理システム
JP2004199630A (ja) データ処理装置
KR100257772B1 (ko) 수퍼스칼라 마이크로프로세서의 정지점 생성 장치
Santos et al. Advantages and disadvantages of application-oriented system design in embedded systems design

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee