KR20060040813A - 컴퓨터 시스템 및 컴퓨터 시스템의 비프음 출력 방법 - Google Patents
컴퓨터 시스템 및 컴퓨터 시스템의 비프음 출력 방법 Download PDFInfo
- Publication number
- KR20060040813A KR20060040813A KR1020040089623A KR20040089623A KR20060040813A KR 20060040813 A KR20060040813 A KR 20060040813A KR 1020040089623 A KR1020040089623 A KR 1020040089623A KR 20040089623 A KR20040089623 A KR 20040089623A KR 20060040813 A KR20060040813 A KR 20060040813A
- Authority
- KR
- South Korea
- Prior art keywords
- port
- beep
- smi
- trap
- south bridge
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/162—Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명에 의한 컴퓨터 시스템의 비프음 출력 방법은, 컴퓨터 시스템에 전원이 인가되어 사우스 브리지가 초기화되는 단계와; 상기 사우스 브리지가 초기화됨에 의해 상기 사우스 브리지 내의 트랩 핸들러에 대응하는 레지스터가 초기화되는 단계와; 컴퓨터 시스템 내에 SMI(System Management Interrupt)가 발생되면, 상기 SMI가 사우스 브리지의 포트 트랩에 대한 SMI인지 검사하는 단계와; 상기 SMI가 포트 트랩에 대한 SMI인 경우, 상기 SMI가 비프음 생성에 관계되는 소정의 포트에 대한 SMI인지 검사하는 단계와; 상기 SMI가 상기 소정의 포트에 대한 SMI인 경우, 각 포트의 쓰기(write) 작업이 수행될 때, 트랩 핸들러에서 상기 SMI(System Management Interrupt)를 인식하여 해당 포트에 대해 트랩 루틴(routine)을 수행하는 단계와; 상기 해당 포트에 대한 트랩 루틴이 수행된 후 상기 포트에서 생성된 데이터를 가로채어져 오디오 코덱으로 전달되는 단계와; 상기 오디오 코덱에서 아날로그 오디오 신호로 변화되어 소정의 비프음이 외부 스피커를 통해 출력되는 단계가 포함되는 것을 특징으로 한다.
Description
도 1은 종래 컴퓨터 시스템에서 메인보드 내에 구비된 버저 스피커를 통해 비프음을 출력하는 컴퓨터 시스템의 구성 블록도.
도 2는 본 발명에 의해 비프음을 출력하는 컴퓨터 시스템의 구성 블록도.
도 3은 본 발명에 의해 비프 신호가 사우스 브리지 내에서 처리되는 과정을 설명하는 사우스 브리지의 내부 구성 블록도.
도 4는 본 발명에 의한 컴퓨터 시스템의 비프음 출력 방법을 나타내는 순서도.
도 5는 61h 포트에서 수행되는 트랩 루틴 과정의 실시예를 나타내는 순서도.
도 6은 43h 포트에서 수행되는 트랩 루틴 과정의 실시예를 나타내는 순서도.
도 7은 42h 포트에서 수행되는 트랩 루틴 과정의 실시예를 나타내는 순서도.
도 8은 트랩 루틴이 수행된 결과가 오디오 코덱에 전송되는 것을 나타내는 순서도.
<도면의 주요 부분에 대한 부호의 설명>
200 : 사우스 브리지 202, 330 : 트랩 핸들러
220 : 오디오 코덱 222 : 비프음 처리부
310 : PPI 320 : 타이머
본 발명은 컴퓨터 시스템에 관한 것으로, 보다 상세하게는 포스트(POST) 루틴을 수행하는 도중 등에 발생하는 비프(beep)음을 외부 스피커를 통해 출력하는 컴퓨터 시스템 및 컴퓨터 시스템의 비프음 출력 방법에 관한 것이다.
컴퓨터 시스템의 비프음은 여러 상황에서 사용되고 있다.
일 례로 컴퓨터 시스템은 전원 스위치를 켜면 바이오스 롬에 있는 바이오스는 포스트(POST : Power On Self Test) 루틴을 수행하게 되는데, 이때 포스트 루틴 수행 중에 컴퓨터 하드웨어 부품 상에 이상이 발견되거나 필수 부품이 장착되어 있지 않으면 즉, 에러가 발견되면 '삐~, 삐~, 삑'과 같은 아주 단순한 구성의 에러 시그널인 비프음(Beep)을 메인보드에 장착된 버저 스피커로 출력해서 사용자에게 에러를 알려준다.
이러한, 컴퓨터 시스템 내의 메인보드에 장착된 버저 스피커를 통해 비프음을 출력하는 컴퓨터 시스템은 도 1에 도시된 것과 같은 구성을 갖는다.
도 1은 종래 컴퓨터 시스템에서 메인보드 내에 구비된 버저 스피커를 통해 비프음을 출력하는 컴퓨터 시스템의 구성 블록도이다.
도 1에 도시된 바와 같이, 종래의 컴퓨터 시스템은 주변기기에게 각각의 데이터의 공급원이 되는 메인보드의 메인 칩셋 중 하나인 사우스 브리지(100)와, 상 기 사우스 브리지에서 전달되는 비프 신호를 증폭시키는 증폭기(미도시)와, 상기 증폭기로부터 전달받은 비프 신호에 해당하는 소정의 비프음을 재생하는 버저 스피커(110)와, 일반적인 컴퓨터 디지털 오디오 신호를 아날로그 오디오 신호로 변환시키는 오디오 코덱(120)과, 일반적인 컴퓨터 오디오신호를 증폭시키는 증폭기(130)와, 증폭된 오디오신호를 외부 스피커(미도시)로 출력시키는 외부 스피커 포트(140)와, 저항들과, 커패시터들을 포함한다.
상기 비프음은 포스트 루틴 수행 중 컴퓨터 하드웨어 부품 상에 이상이 발견되거나 필수 부품이 장착되어 있지 않는 경우 또는 키보드를 오랜 시간 동안 누르고 있는 경우 등 다양한 상황에서 출력되는 음이다.
일 례로 포스트 루틴 수행 중에 컴퓨터 하드웨어 부품 상에 이상이 발견되거나 필수부품이 장착되어 있지 않는 경우를 가정하여 비프음이 출력되는 과정을 설명하면 다음과 같다.
즉, 포스트 루틴 수행 중에 에러가 발견되면 그 에러에 관련된 비프 코드를 바이오스(미도시)는 메인보드의 메인 칩셋 중 하나인 사우스 브리지(101)에게 일정한 주기로 넘겨준다.
비프코드를 입력 받은 사우스 브리지(100)는 소정의 비프 신호를 출력하고, 상기 출력된 비프 신호는 증폭기에 의해 증폭되고 버저 스피커(110)를 통해 '삐~,삐~,삑'과 같은 아주 단순한 구성의 비프음으로 출력되는 것이다.
상기 사우스 브리지(100)는 하드디스크를 포함하는 보조기억장치의 입출력 주소가 저장되는 다수의 레지스터 즉, 다수의 포트가 구비되어 있는 것으로, 하드 디스크 및 주변장치의 입출력 기능을 관리하는 레지스터의 집합체이다.
여기서, 상기 사우스 브리지(100)의 다수 포트에는 상기 비프음 처리에 관계되는 소정의 포트가 구비되어 있고, 상기 비프음은 상기 소정의 포트에서 생성된 데이터에 의해 처리되어 최종적으로 상기 버저 스피커(110)를 통해 출력되는 것이다.
그러나, 컴퓨터 시스템의 초창기 도스(DOS) 오퍼레이션 시스템(OS) 환경에서는 도스 게임 등에서 음향효과를 위해서 또는 컴퓨터 스피커 대용으로 위에서 설명한 메인보드 내부의 버저 스피커의 활용가치가 있었으나, 현재의 멀티미디어 컴퓨터시스템의 경우는 기본적으로 외부의 컴퓨터용 고성능 스피커를 사용하고 있고, 또한 현재 버저 스피커의 역할이 컴퓨터 시스템의 전원스위치를 켠 후 시동초기에 수행하는 포스트 도중 하드웨어장치의 불량감지로 인한 비프코드를 비프음으로 변화하여 발생시키는 역할 등 일부분만 수행하므로, 이러한 버저 스피커를 컴퓨터 시스템 내의 메인보드상에 일률적으로 장착하는 것은 자재가 대비 수행하는 기능이 극히 미비하다는 문제점이 있다.
이에 대해, 최근 들어서 이러한 비프음을 도 1에 도시된 오디오 코덱(120)을 AC 97로 사용할 경우 상기 AC 97에서 처리하여 출력하는 방법이 사용되어 이를 극복하고 있다.
그러나, 현재 컴퓨터 시스템에서는 컴퓨터 시스템을 통해 "High Definition Audio"를 구현하기 위하여 상기 오디오 코덱에 대한 규격이 변화되어 상기 AC 97로 사용되는 오디오 코덱이 Azalia 코덱으로 변경되어 적용되고 있다.
그러나, 상기 Azalia 라는 새로운 디지털 오디오 규격에서는 앞서 설명한 통상적인 아날로그 비프음을 사용하는데 제약이 있어, 별도로 버저 스피커를 채용해야햐만 상기 비프음을 구현할 수 있다는 단점이 있다.
본 발명은 종래의 아날로그 비프음 출력을 지원하지 않는 컴퓨터 시스템의 하드웨어 환경 즉, 고음질의 디지털 사운드를 재생하는 Azalia 코덱을 사용하는 컴퓨터 시스템에서 별도의 추가 장치 및 버저 스피커를 장착하지 않고도 비프음을 출력할 수 있는 컴퓨터 시스템 및 컴퓨터 시스템의 비프음 출력 방법을 제공함에 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명에 의한 컴퓨터 시스템은, 주변기기에게 각각의 데이터의 공급원이 되는 메인보드의 메인 칩셋 중 하나인 사우스 브리지와; 비프음 생성에 관련된 상기 사우스 브리지의 소정 포트에서 쓰기 작업이 수행되는 경우 이를 트랩(trap) 하는 트랩 핸들러(Handler)와; 상기 트랩 핸들러에서 가로채진 디지털 비프 데이터를 전달받아 이를 아날로그 오디오 신호로 변환하는 오디오 코덱과; 상기 오디오 코덱에서 출력된 오디오 신호를 출력하는 외부 스피커가 포함되어 구성됨을 특징으로 한다.
또한, 본 발명에 의한 컴퓨터 시스템의 비프음 출력 방법은, 컴퓨터 시스템에 전원이 인가되어 사우스 브리지가 초기화되는 단계와; 상기 사우스 브리지가 초기화됨에 의해 상기 사우스 브리지 내의 트랩 핸들러에 대응하는 레지스터가 초기 화되는 단계와; 컴퓨터 시스템 내에 SMI(System Management Interrupt)가 발생되면, 상기 SMI가 사우스 브리지의 포트 트랩에 대한 SMI인지 검사하는 단계와; 상기 SMI가 포트 트랩에 대한 SMI인 경우, 상기 SMI가 비프음 생성에 관계되는 소정의 포트에 대한 SMI인지 검사하는 단계와; 상기 SMI가 상기 소정의 포트에 대한 SMI인 경우, 각 포트의 쓰기(write) 작업이 수행될 때, 트랩 핸들러에서 상기 SMI(System Management Interrupt)를 인식하여 해당 포트에 대해 트랩 루틴(routine)을 수행하는 단계와; 상기 해당 포트에 대한 트랩 루틴이 수행된 후 상기 포트에서 생성된 데이터를 가로채어져 오디오 코덱으로 전달되는 단계와; 상기 오디오 코덱에서 아날로그 오디오 신호로 변화되어 소정의 비프음이 외부 스피커를 통해 출력되는 단계가 포함되는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세히 설명하도록 한다.
도 2는 본 발명에 의해 비프음을 출력하는 컴퓨터 시스템의 구성 블록도이다.
도 2에 도시된 바와 같이, 본 발명에 의한 컴퓨터 시스템은 주변기기에게 각각의 데이터의 공급원이 되는 메인보드의 메인 칩셋 중 하나인 사우스 브리지(200)와, 비프음 생성에 관련된 상기 사우스 브리지의 소정 포트에서 쓰기 작업이 수행되는 경우 이를 트랩(trap) 하는 트랩 핸들러(Handler)(202)와, 상기 트랩 핸들러에서 가로채진 디지털 비프 데이터를 전달받아 이를 아날로그 오디오 신호로 변환하는 오디오 코덱(220)과, 상기 오디오 코덱에서 출력된 오디오신호를 증폭시키는 증폭기(230)와, 증폭된 오디오신호를 외부 스피커(미도시)로 출력시키는 외부 스피커 포트(240)가 포함되어 구성된다.여기서, 상기 트랩 핸들러(202)는 사우스 브리지(200) 내부에 구비된 특정 레지스터에 해당된다.
이 때, 상기 오디오 코덱(220)은 현재 컴퓨터 시스템을 통해 High Definition Audio 를 구현하기 위하여 채용되는 Azalia 코덱임을 특징으로 하며, 본 발명에 의할 경우 고음질의 디지털 사운드를 재생하는 상기 Azalia 코덱을 사용하는 컴퓨터 시스템에서 별도의 추가 장치 및 버저 스피커를 장착하지 않고도 기존의 아날로그 비프음을 출력할 수 있게 되는 것이다.
상기 사우스 브리지(200)는 하드디스크를 포함하는 보조기억장치의 입출력 주소가 저장되는 다수의 레지스터 즉, 다수의 포트가 구비되어 있는 것으로, 하드디스크 및 주변장치의 입출력 기능을 관리하는 레지스터의 집합체이다.
상기 사우스 브리지(200)의 소정 포트 즉, 비프음 생성과 관련된 포트는 61h 포트, 43h 포트, 42h 포트이며, 상기 포트에서 쓰기 작업이 수행되는 경우에 상기 트랩 핸들러(202)에서는 이에 해당하는 SMI(System Management Interrupt)를 인식하여 트랩을 수행한다.
상기 트랩(trap)이란 실행 중인 프로그램 내에서 테스트 등을 위해 특별한 조건을 걸어 놓은 것으로, 본 발명의 경우 상기 트랩 핸들러에서는 상기 비프음 생성과 관련된 포트에서 쓰기 작업이 수행될 때, 이에 해당하는 SMI를 인식하여 상기 포트에서 생성된 데이터를 가로채는 역할을 수행한다.
이와 같이 상기 트랩 핸들러(202)를 통해 가로채진 데이터는 상기 오디오 코 덱(220)의 비프음 처리부(222)로 전달되고, 상기 비프음 처리부(222)에서 아날로그 오디오 신호로 변화되어 최종적으로 외부 스피커(미도시)를 통해 출력되게 된다.
도 3은 본 발명에 의해 비프 신호가 사우스 브리지 내에서 처리되는 과정을 설명하는 사우스 브리지의 내부 구성 블록도이다.
도 3을 참조하면, 사우스 브리지(200)는 롬 바이오스 또는 OS 등으로부터 제공받는 비프 코드로부터 소정의 비프 데이터를 출력하는 PPI(Peripheral Interface)(310)와, 상기 PPI(310)로부터 소정의 비프 데이터를 인가 받아 상기 데이터에 해당하는 소정의 비프 신호를 출력하는 타이머(320)가 포함되어 구성된다.
상기 사우스 브리지(200)는 하드디스크를 포함하는 보조기억장치의 입출력 주소가 저장되는 다수의 레지스터 즉, 다수의 포트가 구비되어 있는 것으로, 하드디스크 및 주변장치의 입출력 기능을 관리하는 레지스터의 집합체인 것이다.
상기 PPI(310)는 사우스 브리지의 61h 포트(port)에 매칭되는 것으로, 도시된 바와 같이 상기 61h[0]에서는 타이머의 비프음 출력 포트(42h 포트)와 매칭되는 카운터 2에 대한 인에블 신호를 출력하고, 상기 61h[1]에서는 비프 데이터 인에이블 신호를 출력한다.
또한, 상기 타이머(320)에는 일반적으로 1,1993Mhz 의 클럭 및 상기 PPI의 61h[0]에서 출력되는 카운터 2 인에이블 신호가 입력되며, 상기 타이머의 카운터 0, 1, 2로부터 각각 컴퓨터 시스템 구동을 위한 시스템 타이머 신호, 디램 등의 리프레시(refresh) 신호, 상기 타이머에서 생성되는 비프 신호가 출력된다.
이 때, 상기 타이머의 카운터 0, 1, 2는 각각 사우스 브리지의 40h 포트, 41h 포트, 42h 포트와 매칭되며, 상기 타이머 모드는 43h 포트에 매칭된다.
본 발명은 상기 사우스 브리지의 다수 포트 중 비프음 생성과 관련된 61h 포트, 43h 포트, 42h 포트에서 쓰기(write) 작업이 수행되는 경우에 상기 트랩 핸들러(330)에서는 이에 해당하는 SMI(System Management Interrupt)를 인식하여 해당 포트에 대해 트랩을 수행한다.
즉, 상기 트랩 핸들러(330)에서는 상기 비프음 생성과 관련된 포트에서 쓰기 작업이 수행될 때, 이에 해당하는 SMI를 인식하여 상기 포트에서 생성된 데이터를 가로채는 역할을 수행하는 것이며, 이와 같이 상기 트랩 핸들러를 통해 가로채진 데이터는 오디오 코덱(220)로 전달되고, 아날로그 오디오 신호로 변화되어 최종적으로 외부 스피커를 통해 출력되는 것이다.
도 4는 본 발명에 의한 컴퓨터 시스템의 비프음 출력 방법을 나타내는 순서도이다.
도 4를 참조하면, 먼저 컴퓨터 시스템에 전원이 인가됨에 의해 발생되는 리셋 신호에 응답하여 사우스 브리지, 노스 브리지, CPU가 소정의 수순대로 차례로 초기화되고, 상기 초기화된 CPU는 바로 바이오스를 수행시켜 POST를 진행하여 시스템의 구성상태를 점검 및 변경하는데, 이 때, 상기 사우스 브리지가 초기화됨에 의해 상기 사우스 브리지 내의 트랩 핸들러에 대응하는 레지스터가 초기화된다. (ST 400)
상기 트랩 핸들러는 비프음 생성에 관련된 상기 사우스 브리지의 소정 포트에서 쓰기 작업이 수행되는 경우 이를 트랩(trap) 하는 역할을 수행하는 것이다.
다음 상기 트랩 핸들러의 초기화 이후, 상기 트랩 핸들러에서는 사우스 브리지의 특정 포트 즉, 비프음 생성과 관련된 소정의 포트에 대한 트랩에 관계되는 SMI를 처리하는 트랩 SMI 핸들러가 설치된다.
이후 컴퓨터 시스템 내에 SMI가 발생되면, 상기 SMI가 사우스 브리지의 포트 트랩에 대한 SMI인지 검사한다. (ST 410, 420)
여기서, 상기 SMI가 포트 트랩에 대한 SMI인 경우에는 이후 상기 SMI가 비프음 생성에 관계되는 소정의 포트에 대한 SMI인지 즉, 61h 포트, 43h 포트, 42h 포트에 대한 SMI인지 검사하게 된다.(ST 430, 440, 450)
또한, 상기 SMI가 포트 트랩에 대한 SMI가 아니거나, 또는 상기 비프음 생성에 관계되는 소정의 포트에 대한 SMI가 아닌 경우에는 상기 SMI의 원인을 파악하고 그에 해당하는 처리를 하게 된다. (ST 460)
이후, 상기 SMI가 각각 61h 포트, 43h 포트, 42h 포트에 대한 SMI인 경우에는 각 포트의 쓰기(write) 작업이 수행될 때, 상기 트랩 핸들러에서 상기 SMI(System Management Interrupt)를 인식하여 해당 포트에 대해 트랩 루틴(routine)을 수행하게 된다. (ST 470, 480, 490)
이와 같이 상기 비프음 생성에 관련되는 61h 포트, 43h 포트, 42h 포트에 대한 트랩 루틴이 수행되면, 상기 포트에서 생성된 데이터를 가로채어져 오디오 코덱으로 전달되고(ST 500), 이는 상기 오디오 코덱에서 아날로그 오디오 신호로 변화되어 최종적으로 외부 스피커를 통해 출력되는 것이다. (ST 510)
이하, 각 포트 즉, 61h 포트, 43h 포트, 42h 포트에서 수행되는 트랩 루틴 과정의 실시예를 도 5 내지 도 7을 통해 설명하도록 한다.
도 5는 61h 포트에서 수행되는 트랩 루틴 과정의 실시예를 나타내는 순서도로서, 이는 도 4의 ST 470 단계를 보다 상세히 설명하는 것이다.
앞서 도 4를 통해 설명한 바와 같이 61h 포트에서의 쓰기 작업이 수행되고,이에 대한 SMI를 트랩 핸들러에서 인식함에 의해 상기 61h 포트에 대해 트랩 루틴(routine)이 시작된다.
본 발명은 I/O 읽기/쓰기(READ/WRITE)를 최소화하고 루틴을 간결하게 설계함으로써, 원래 발생시키고자 하는 음원 그대로를 발생시키도록 하기 위해 다양한 메모리 변수를 사용한다.
즉, 상기 메모리 변수를 사용함으로써, I/O 읽기/쓰기(READ/WRITE) 과 사용시 발생되는 지연 및 소리의 왜곡 현상을 극복할 수 있게 되는 것이다.
도 5를 참조하면, 상기 61h 포트에 대해 트랩 루틴(routine)이 시작되면 메모리 변수 BEEP_61_INITIALIZED 플래그(flag)를 1로 설정한다. (B 001)
즉, 상기 메모리 변수 BEEP_61_INITIALIZED 는 61h 포트에 대한 트랩이 1회 이상 불려 졌을 때 1로 설정된다.다음 상기 61h 포트에 대한 트랩 핸들러가 처리되는 중에 다시 SMI 이벤트가 발생하지 않도록 61h 포트의 쓰기(write) 트랩을 디스에이블(disable)로 설정한다. (B 002)
이후 트랩이 발생할 때 61h 포트에 쓰고자 했던 값을 61h 포트에 쓴다. 즉, 트랩이 발생된 원인인 쓰기 작업은 실제로 보류되었고, 상기 단계에서 61h 포트에 쓰고자 했던 값을 주어여만, 실제적으로 그 값이 61h 포트에 쓰여진다. (B 003)
이후 61h[0], 61h[1]에서 출력되는 신호 즉, 도 3에서 설명한 타이머의 비프음 출력 포트(42h 포트)와 매칭되는 카운터 2에 대한 인에블 신호(Timer counter 2 Enable) 및 비프 데이터 인에이블 신호(Speaker Data Enable)가 변경되었는지 검사한다. (B 004)
검사 후 변경된 경우에는 메모리 변수 BEEP_UPDATE 플래그를 1로 설정한다. (B 005) 여기서, 상기 메모리 변수 BEEP_UPDATE 는 주파수를 갱신할 것인가 여부를 결정하는 변수이다.
그 다음은 61h 포트가 변경되었으므로 메모리 변수 BEEP_61h 를 새로 써진 값으로 변경한다. (B 006) 여기서, 메모리 변수 BEEP_61h 는 61h 포트에 쓰여지는 값을 저장하기 위해 사용되는 것이다.
그 다음 상기 비프 데이터 인에이블 신호(Speaker Data Enable)가 인에이블 되어 있는지 확인하고(B 007), 인에이블 상태라면 메모리 변수 BEEP_ACTIVE 를 1로 설정하고, 그렇지 않은 경우는 0으로 클리어(clear) 한다. (B 008, 009)
상기 메모리 변수 BEEP_ACTIVE 는 메모리 변수 BEEP_61h 의 비트 1 즉, 61h[1]이 1일 때 설정되며, 만약 상기 BEEP_ACTIVE 가 0인 경우 주파수와 관계없이 소리를 끄게 된다.
그 후 상기 (B 002)에서 디스에이블로 설정된 61h 포트의 쓰기(write) 트랩을 인에이블(Enable)로 설정한다. (B 010)
상기 과정을 통해 상기 61h 포트에 대해 트랩 루틴(routine)이 수행되고, 수행 결과는 오디오 코덱에 송부되어 최종적으로 외부 스피커를 통해 소정의 비프음 이 출력되는 것이다.
도 6은 43h 포트에서 수행되는 트랩 루틴 과정의 실시예를 나타내는 순서도로서, 이는 도 4의 ST 480 단계를 보다 상세히 설명하는 것이다.
앞서 도 4를 통해 설명한 바와 같이 43h 포트에서의 쓰기 작업이 수행되고,이에 대한 SMI를 트랩 핸들러에서 인식함에 의해 상기 43h 포트에 대해 트랩 루틴(routine)이 시작된다.
또한, 상기 43h 포트에 대한 트랩 루틴(routine) 수행이 완료된 이후에만 42h 포트의 트랩이 의미가 있기 때문에 도 3에 도시된 타이머의 카운터 2에 디바이저(dvisor)를 쓰려고 하는지 여부를 경정하는데, 가장 중요한 단서를 상기 43h 포트에 대한 트랩 루틴(routine)에서 얻을 수 있는 것이다.
도 6을 참조하면, 먼저 43h 포트의 쓰기(write) 트랩을 디스에이블(disable)로 설정한다. (C 001)
이후 트랩이 발생할 때 43h 포트에 쓰고자 했던 값을 43h 포트에 쓴다. 즉, 트랩이 발생된 원인인 쓰기 작업은 실제로 보류되었고, 상기 단계에서 43h 포트에 쓰고자 했던 값을 주어야만, 실제적으로 그 값이 43h 포트에 쓰여진다. (C 002)
그 다음 차후 43h 포트에 쓰여진 값을 참조하기 위하여 메모리 변수 BEEP_43h 에 그 값을 저장한다. (C 003)
다음 상기 상기 (C 001)에서 디스에이블로 설정된 43h 포트의 쓰기(write) 트랩을 인에이블(Enable)로 설정하고(C 004), 트랩 루틴을 종료한다.
도 7은 42h 포트에서 수행되는 트랩 루틴 과정의 실시예를 나타내는 순서도 로서, 이는 도 4의 ST 490 단계를 보다 상세히 설명하는 것이다.
앞서 도 4를 통해 설명한 바와 같이 42h 포트에서의 쓰기 작업이 수행되고,이에 대한 SMI를 트랩 핸들러에서 인식함에 의해 상기 42h 포트에 대해 트랩 루틴(routine)이 시작된다.
D001 : 먼저 42h 포트에 쓰기(Write) 트랩을 디스에이블(Disabled)로 설정한다.
D002 : 42h 포트에 쓰고자 했던 값을 42h 포트에 쓴다. 즉, 트랩이 발생된 원인인 쓰기 작업은 실제로 보류되었고, 상기 단계에서 42h 포트에 쓰고자 했던 값을 주어야만, 실제적으로 그 값이 42h 포트에 쓰여진다.
D003 : 앞서 도 6에서 설명한 메모리 변수 BEEP_43h 를 참조하여 타이머의 카운터 2에 대한 쓰기(Write) 인지를 검사한다. D004 : 42h 포트에 쓰려고 한 값이 최상위 비트(MSB : Most Significant Bit)로 쓰려는 값인지 검사한다.
D005 : 42h 포트에 쓰려고 한 값이 최하위 비트(LSB : Least Significant Bit)로 쓰려는 값인지 검사한다.
D006 : 42h 포트에 쓰려는 값이 LSB then MSB라는 Command에 의해 실행되는 것인지 검사한다. 만약 그렇다면, LSB에 쓰여져야 하는지 MSB에 쓰여져야 하는지 추가 검사 작업이 필요하게 된다. 만일 그렇지 않다면, 쓰려고 했던 값이 타이머의 카운터 2에 쓰려고 했던 값이 아닌 경우이다. D007 : 42h 포트의 쓰기 트랩을 다시 인에이블(Enabled)로 설정한다.
D008 : 메모리 변수 BEEP_42h_HIGH 즉, MSB에 값을 저장 하는 경우이다. 이 경우 다음의 Flag를 설정하게 된다. 즉, 42h 포트에 쓰려고 했던 값을 메모리 변수 BEEP_42h_HIGH 에 저장한다.
이에 메모리 변수 BEEP_UPDATE = 1 및 메모리 변수 BEEP_INITIALIZED = 1, 메모리 변수 BEEP_43h = 0 : 43h 포트에 명령을 준 작업이 완료 되었으므로, 그 값을 clear 한다.
상기 메모리 변수 BEEP_UPDATE 는 주파수를 갱신할 것인가 여부를 결정하는 팩터이다.
D009 : 메모리 변수 BEEP_42h_LO 즉, LSB에 값을 저장 하는 경우이다. 이 경우 다음 플래그들을 설정한다. 즉, 42h 포트에 쓰려고 했던 값을 메모리 변수 BEEP_42h_LO 에 저장한다. 여기서, 메모리 변수 BEEP_UPDATE 및 메모리 변수 BEEP_INITIALIZED 은 각각 1로 설정되어 있다.
여기서, 상기 메모리 변수 BEEP_42h_HIGH 및 BEEP_42h_LO 에 의해 Divisor가 결정되며, 그에 따라 주파수가 결정된다.
D010 : 메모리 변수 HIGH_BYTE_EN 이 1로 설정 되어 있는지를 검사한다. 즉, 43h 포트에 LSB then MSB 명령이 내려진 경우, LSB를 처리 해야 하는지 MSB를 처리 해야 하는지를 경정하기 위한 검사이다.
D011 : 메모리 변수 HIGH_BYTE_EN 이 0인 경우이다. 즉, LSB then MSB 가 PORT 43h 에 쓰여진 후 처음 42h 포트에 값이 쓰여졌으므로, LSB를 처리해야 하는 경우이다.
상기 메모리 변수 HIGH_BYTE_EN 는 43h 포트에 쓰여지는 코맨드(command) 중 메모리의 카운터 2에 LSB then MSB가 불려 졌을 때, LSB 입력을 받은 후 MSB를 받을 수 있도록 상기 플래그를 사용한다. 42h 포트에 쓰려고 했던 값을 메모리 변수 BEEP_42_LO 에 저장하고 다음과 같이 플래그(Flag)를 설정한다. Divisor를 갱신하는 중이므로 메모리 변수 BEEP_UPDATE 플래그를 0으로 clear한고, 메모리 변수 FREQ_INITILIZED 플래그를 0 clear한다.
여기서, 상기 메모리 변수 FREQ_INITILIZED 는 Divisor가 정상적으로 초기화 되었는지 여부를 졀정하는 플래그로 사용된다.
또한, MSB를 받아야 함을 알리기 위하여 메모리 변수 HIGH_BYTE_EN 플래그를 1로 설정한다.
D012 : MSB를 받았으므로 메모리 변수 HIGH_BYTE_EN 을 Clear한다.
D013 : 42h 포트의 쓰기 트랩 수행을 종료한다.
도 8은 트랩 루틴이 수행된 결과가 오디오 코덱에 전송되는 것을 나타내는 순서도로서, 이는 도 4의 ST 500 단계를 보다 상세히 설명하는 것이다.
E000 : 앞서 설명한 61h 포트 및 42h 포트, 43h 포트에서 얻은 정보를 이용하여, 아날로그 비프음의 에뮬레이트(Emulate)를 시작한다.
E001 : 상기 비프음을 갱신하여야 하는 경우 인지를 검사한다.
E002 : 주파수(Frequency)가 초기와 되었는지를 검사한다.
Frequency가 초기화 되었다는 것은 Divisor 인 메모리 변수 BEEP_42h_HIGH 및 BEEP_42h_LO 가 초기화 되었는지를 의미하는 것이며, 상기 주파수는 다음과 같이 계산된다.
(Divisor = BEEP_42h_HIGH * 256 + BEEP_42h_LO)
E003 : 메모리 변수 BEEP_61_INITIALIZED 가 1로 설정 되었는가 즉 응용 프로그램이 비프음을 발생 시키고자 61h 포트에 접근을 하였는지를 나타내는 플래그 이다.
E004 : 상기 Divisor도 초기화 되었고, 메모리 변수 BEEP_ACTIVE 여부에 따라서 비프음을 출력할 지, 그렇게 하지 않을 지의 정보를 알고 있는 상태이다. 그리고 비프음을 갱신 하여야 함으로 음을 발생 시킬 수 있는 하드웨어를 사용하여 아날로그 비프음을 에뮬레이트하여야 한다.
이 때, 비프음를 내는 방법은 HW 디자인에 따라 다를 수 있으며, 그 디자인에 적절한 방법을 선택 하여야 할 것이다.
단, 본 발명의 경우 Azalia Code의 PC Beep Widget에 Frequency 정보를 바탕으로 Payload를 얻은 후 소리를 발생 시키는 방법을 고려할 수 있으며, 상기 Azalia 코덱을 통해 소리를 내는 방법 및 Payload를 구하는 공식은 설명하지 않도록 한다.
E005 : 비프음를 출력하기 위한 하드웨어에 접근을 완료한다.
이와 같은 본 발명에 의하면, 종래의 아날로그 비프음 출력을 지원하지 않는 컴퓨터 시스템의 하드웨어 환경 즉, 고음질의 디지털 사운드를 재생하는 Azalia 코 덱을 사용하는 컴퓨터 시스템에서 별도의 추가 장치 및 버저 스피커를 장착하지 않고도 비프음을 출력함으로써, 추가 비용 없이 하위 호환성을 유지할 수 있다는 장점이 있다.
Claims (15)
- 주변기기에게 각각의 데이터의 공급원이 되는 메인보드의 메인 칩셋 중 하나인 사우스 브리지와;비프음 생성에 관련된 상기 사우스 브리지의 소정 포트에서 쓰기 작업이 수행되는 경우 이를 트랩(trap) 하는 트랩 핸들러(Handler)와;상기 트랩 핸들러에서 가로채진 디지털 비프 데이터를 전달받아 이를 아날로그 오디오 신호로 변환하는 오디오 코덱과;상기 오디오 코덱에서 출력된 오디오 신호를 출력하는 외부 스피커가 포함되어 구성됨을 특징으로 하는 컴퓨터 시스템.
- 제 1항에 있어서,상기 트랩 핸들러는 상기 사우스 브리지 내부에 구비된 특정 레지스터에 해당됨을 특징으로 하는 컴퓨터 시스템.
- 제 1항에 있어서,상기 오디오 코덱은 컴퓨터 시스템을 통해 고음질 디지털 오디오 구현을 위해 채용되는 Azalia 코덱임을 특징으로 하는 컴퓨터 시스템.
- 제 1항에 있어서,상기 비프음 생성에 관련된 상기 사우스 브리지의 소정 포트는 각각 61h 포트, 43h 포트, 42h 포트임을 특징으로 하는 컴퓨터 시스템.
- 제 4항에 있어서,상기 61h 포트, 43h 포트, 42h 포트에서 쓰기 작업이 수행되는 경우에 트랩 핸들러에서 이에 해당하는 SMI(System Management Interrupt)를 인식하여 해댕 포트에 대해 트랩을 수행함을 특징으로 하는 컴퓨터 시스템.
- 제 1항에 있어서,상기 사우스 브리지는 제공받은 비프 코드로부터 소정의 비프 데이터를 출력하는 PPI(Peripheral Interface)와;상기 PPI로부터 소정의 비프 데이터를 인가 받아 상기 데이터에 해당하는 소정의 비프 신호를 출력하는 타이머가 포함되어 구성됨을 특징으로 하는 컴퓨터 시스템.
- 제 6항에 있어서,상기 사우스 브리지는 하드디스크를 포함하는 보조기억장치의 입출력 주소가 저장되는 다수의 레지스터 즉, 다수의 포트가 구비되어 있는 것으로, 상기 PPI는 사우스 브리지의 61h 포트(port)에 매칭됨을 특징으로 하는 컴퓨터 시스템.
- 제 7항에 있어서,상기 61h[0]에서는 타이머의 비프음 출력 포트(42h 포트)와 매칭되는 카운터 2에 대한 인에블 신호를 출력하고, 상기 61h[1]에서는 비프 데이터 인에이블 신호를 출력함을 특징으로 하는 컴퓨터 시스템.
- 제 6항에 있어서,상기 타이머의 출력 카운터 카운터 0, 1, 2로부터 각각 컴퓨터 시스템 구동을 위한 시스템 타이머 신호, 디램의 리프레시(refresh) 신호, 상기 타이머에서 생성되는 비프 신호가 출력됨을 특징으로 하는 컴퓨터 시스템.
- 제 9항에 있어서,상기 타이머의 카운터 0, 1, 2는 각각 사우스 브리지의 40h 포트, 41h 포트, 42h 포트와 매칭되고, 상기 타이머 모드는 43h 포트에 매칭됨을 특징으로 하는 컴퓨터 시스템.
- 컴퓨터 시스템에 전원이 인가되어 사우스 브리지가 초기화되는 단계와;상기 사우스 브리지가 초기화됨에 의해 상기 사우스 브리지 내의 트랩 핸들러에 대응하는 레지스터가 초기화되는 단계와;컴퓨터 시스템 내에 SMI(System Management Interrupt)가 발생되면, 상기 SMI가 사우스 브리지의 포트 트랩에 대한 SMI인지 검사하는 단계와;상기 SMI가 포트 트랩에 대한 SMI인 경우, 상기 SMI가 비프음 생성에 관계되는 소정의 포트에 대한 SMI인지 검사하는 단계와;상기 SMI가 상기 소정의 포트에 대한 SMI인 경우, 각 포트의 쓰기(write) 작업이 수행될 때, 트랩 핸들러에서 상기 SMI(System Management Interrupt)를 인식하여 해당 포트에 대해 트랩 루틴(routine)을 수행하는 단계와;상기 해당 포트에 대한 트랩 루틴이 수행된 후 상기 포트에서 생성된 데이터를 가로채어져 오디오 코덱으로 전달되는 단계와;상기 오디오 코덱에서 아날로그 오디오 신호로 변화되어 소정의 비프음이 외부 스피커를 통해 출력되는 단계가 포함되는 것을 특징으로 하는 컴퓨터 시스템의 비프음 출력 방법.
- 제 11항에 있어서,상기 트랩 핸들러의 초기화 이후, 상기 트랩 핸들러에서는 사우스 브리지의 특정 포트 즉, 비프음 생성과 관련된 소정의 포트에 대한 트랩에 관계되는 SMI를 처리하는 트랩 SMI 핸들러가 설치되는 단계가 더 포함됨을 특징으로 하는 컴퓨터 시스템의 비프음 출력 방법.
- 제 11항에 있어서,상기 트랩 핸들러는 상기 사우스 브리지 내부에 구비된 특정 레지스터에 해당됨을 특징으로 하는 컴퓨터 시스템의 비프음 출력 방법.
- 제 11항에 있어서,상기 오디오 코덱은 컴퓨터 시스템을 통해 고음질 디지털 오디오 구현을 위해 채용되는 Azalia 코덱임을 특징으로 하는 컴퓨터 시스템의 비프음 출력 방법.
- 제 11항에 있어서,상기 비프음 생성에 관련된 상기 사우스 브리지의 소정 포트는 각각 61h 포트, 43h 포트, 42h 포트임을 특징으로 하는 컴퓨터 시스템의 비프음 출력 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040089623A KR20060040813A (ko) | 2004-11-05 | 2004-11-05 | 컴퓨터 시스템 및 컴퓨터 시스템의 비프음 출력 방법 |
US11/239,360 US20060111919A1 (en) | 2004-11-05 | 2005-09-30 | Computer system and method of outputting beep sound of computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040089623A KR20060040813A (ko) | 2004-11-05 | 2004-11-05 | 컴퓨터 시스템 및 컴퓨터 시스템의 비프음 출력 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20060040813A true KR20060040813A (ko) | 2006-05-11 |
Family
ID=36462005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040089623A KR20060040813A (ko) | 2004-11-05 | 2004-11-05 | 컴퓨터 시스템 및 컴퓨터 시스템의 비프음 출력 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060111919A1 (ko) |
KR (1) | KR20060040813A (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164301B (zh) * | 2011-12-15 | 2018-01-26 | 富泰华工业(深圳)有限公司 | 便携式检测装置及其检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2135506C (en) * | 1994-11-09 | 1999-06-08 | Patrick K. Kam | I/o trapping for sound generation in the computer |
-
2004
- 2004-11-05 KR KR1020040089623A patent/KR20060040813A/ko not_active Application Discontinuation
-
2005
- 2005-09-30 US US11/239,360 patent/US20060111919A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20060111919A1 (en) | 2006-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6629157B1 (en) | System and method for virtualizing the configuration space of PCI devices in a processing system | |
US6321287B1 (en) | Console redirection for a computer system | |
JP3106409B2 (ja) | パーソナルコンピュータ用診断システムおよびインタフェース | |
US5768567A (en) | Optimizing hardware and software co-simulator | |
US5771370A (en) | Method and apparatus for optimizing hardware and software co-simulation | |
US7024547B2 (en) | Method and system for initializing a hardware device | |
US20190095195A1 (en) | Preserving firmware setting during firmware update | |
US7146512B2 (en) | Method of activating management mode through a network for monitoring a hardware entity and transmitting the monitored information through the network | |
US7581037B2 (en) | Effecting a processor operating mode change to execute device code | |
US6272618B1 (en) | System and method for handling interrupts in a multi-processor computer | |
CN109471668B (zh) | 跨平台显卡固件翻译执行方法、装置、设备及可读介质 | |
US20170031694A1 (en) | System and method for remote system configuration managment | |
US7716642B1 (en) | Techniques for detecting coding incompatibilities | |
US6412028B1 (en) | Optimizing serial USB device transfers using virtual DMA techniques to emulate a direct memory access controller in software | |
US10210842B2 (en) | Techniques of displaying host data on a monitor connected to a service processor during pre-boot initialization stage | |
US6393493B1 (en) | System and method for optimizing serial USB device reads using virtual FIFO techniques | |
US7231512B2 (en) | Technique for reconstituting a pre-boot firmware environment after launch of an operating system | |
GB2245726A (en) | Initialisation using an option board prom | |
US8700807B2 (en) | High speed baseboard management controller and transmission method thereof | |
US20060070085A1 (en) | System and method for pervasive computing with a portable non-volatile memory device | |
TWI553490B (zh) | 遠端系統配置管理方法、遠端系統配置管理系統及非暫態電腦可讀式儲存多媒體 | |
US6807629B1 (en) | Apparatus and method for accessing POST 80h codes via a computer port | |
KR20060040813A (ko) | 컴퓨터 시스템 및 컴퓨터 시스템의 비프음 출력 방법 | |
JP2019179284A (ja) | シミュレーションシステム、及びシミュレーションプログラム | |
WO2002093372A2 (en) | A firmware common operations and reset environment |
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 |