컴퓨터활용능력시험 1급 실기 - 2과목 데이터베이스 실무 (2018개정) [교안]
Hybrid TCP/IP Offload Engine의 프로토타입 개발
탐새 1단원 액세스 개요 문혜영교수 컴퓨터활용능력 1급 실기 2 1 액세스 개요 목차 2 액세스 화면구성 3 액세스를 구성하는 개체 4 출제형태 액세스 개요 • 데이터베이스(Database)를 구축하고, 데이터를 분류, 관리, 검색, 인쇄할 수 있는 데이터베이스 프로그램 (DBMS) • 액세스 프로그램의 기본 데이터 파일의 확장자는 .accdb 새 데이터베이스 만들기 • 데이터베이스의 파일명은 영문 255자까지 입력할 수 있으며, 공백을 포함할 수 있음 • 파일 이름을 입력하지 않으면 자동으로 Database1.accdb, Database2.accdb … 순으로 이름 지정 액세스 화면구성 탐색창의 액세스 개체 • 액세스 개체는 액세스에서 작업할 수 있는 전반적 인 기능을 제공하는 것, • 테이블, 쿼리, 폼, 보고서, 매크로, 모듈로 구성 • . 액세스를 구성하는 개체 테이블 • 테이블(Table)은 데이터베이스의 가장 기본이 되는 핵심개체로 데이터베이스에서 사용할 데이터를 저장하고 관 리하는 곳입니다. • 테이블은 열 단위의 필드와 행 단위의 레코드로 구성되며 필드와 속성을 지정한 후에 데이터를 입력하여 테이블을 생성하게 됩니다. • 테이블 디자인 보기의 필드 속성 구역에서 필드 속성을 설정하여 데이터의 표시 형식을 제어한다. 쿼리 쿼리(Query)는 테이블에서 만든 데이터를 이용하여 사용자가 원하는 구성으로 변경하거나 다양한 조건으로 데이 터를 검색하고 추출합니다. • 선택 쿼리는 데이터베이스에 저장된 데이터에 대해 질문하고 데이터의 변경없이 쿼리 결과를 반환합니다. • 실행 쿼리는 데이터를 변경하거나 복사하는 쿼리입니다. • 실행 쿼리의 예로는 추가 쿼리, 삭제 쿼리, 테이블 만들기 쿼리, 업데이트 쿼리 등이 있습니다. 다 폼 • 폼(Form)은 데이터의 추가, 삭제, 수정, 검색등의 작업을 시각적으로 좀더 쉽고 효율적으로 작업할 수 있도록 작업화 면을 만드는 개체입니다. • 폼에서는 매크로나 VBA(Visual Basic for Application)로 만든 프로시저를 특정 이벤트에 연결할 수도 있습니다. 보고서 보고서(Report)는 다양한 모양의 출력자료를 만들기 위해 사용하는 개체입니다. • 많은 양의 데이터를 분류하고 요약해서 계산된 정보들을 출력하거나 통계분석 처리를 할 수 있습니다. • 원본 데이터를 제공하는 테이블이나 쿼리를 레코드 원본으로 사용하여 다양한 형태로 작성할 수 있습니다.
탐새 2단원 테이블 작성 문혜영교수 컴퓨터활용능력 1급 실기 2 1 테이블 만들기 목차 2 디자인 보기 3 데이터 시트 보기 4 데이터 형식 테이블 만들기 데이터 형식 종류 • 텍스트 형식 • 텍스트나 숫자가 모두 들어있는 데이터를 입력할 수 있는 형식 • 메모 형식 • 텍스트형식과 비슷한 기능을 제공하며 최대 65,535자까지 입력 가능 • 숫자 형식 • 산술계산에 사용되는 숫자를 입력할 수 있는 형식 • 날짜/시간 형식 • 날짜와 시간을 입력할 수 있는 형식 • 기본필드크기는 8바이트 • 통화 형식 • 화폐계산에 사용되는 자료를 저장할 때 사용 • 크기는 8바이트 • 일련번호 형식 • 레코드가 추가될 때마다 번호를 하나씩 증가시켜주는 형식 • 기본필드크기는 4바이트 • Yes/No, 형식 • Yes/No, True/False, On/Off 등 두 값 중 • 하나만 입력하는 경우에 사용하는 형식 • 기본 필드 크기는 1비트 • OLE 개체형식 • 다른 프로그램에서 만들어진 개체를 입력할 수 있는 형식으로 기 본 필드크기는 1GB이다. • 하이퍼링크형식 • 웹사이트나 파일의 특정위치로 바로 이동하는 형식 • 첨부파일 • 파일을 첨부하기 위한 형식 • 계산 • 필드에 입력된 수식의 결과를 표시하기 위한 형식이다.
탐새 3단원 필드속성 문혜영교수 컴퓨터활용능력 1급 실기 2 1 입력 마스크 목차 2 사용자 지정 형식 3 유효성 검사 4 조회 속성 필드속성-입력마스크 • 입력마스크 • 데이터를 정확하게 입력할 수 있 도록 데이터 형식에 맞게 입력틀을 만들어주는 속성 • 사용자 지정기호 • 0, 9, #, L, ?, A, a &, C, <, >, !, 기 호 설 명 입력 여부 0 0~9까지의 숫자만 입력 가능하다. 더하기와 빼기 기 호를 사용할 수 없음 필수 9 숫자나 공백의 입력이 가능. 더하기와 빼기 기호를 사용 할 수 없음 선택 # 숫자나 공백의 입력이 가능하지만 공백은 저장되지 않음. 더하기와 빼기 기호를 사용할 수 있음 선택 L 영문자와 한글만 입력 가능 필수 ? 영문자와 한글만 입력 가능 선택 A 영문자, 숫자, 한글만 입력할 수 있음 필수 a 영문자, 숫자, 한글만 입력할 수 있음 선택 사용자 지정 기호 기 호 설 명 입력 여부 & 모든 문자나 공백을 입력할 수 있음 필수 C 모든 문자나 공백을 입력할 수 있음 선택 . , : ; - / 소수 자릿수와 1000 단위, 날짜, 시간 등의 구분 기호를 입력 할 수 있음 < 모든 문자를 소문자로 변환 > 모든 문자를 대문자로 변환 ! 문자를 왼쪽에서부터 입력해도 오른쪽을 기준으로 채워짐 \ 뒤에 나오는 문자를 그대로 표시 Password 입력하는 문자를 *로 표시 필드속성-기타 • 기본값 • 필드에 자동으로 입력되는 값 • 유효성검사 • 입력할 데이터의 종류나 범위를 지정하여 입력데이터를 제한 • 필수 • 반드시 입력되어야 할지 여부를 지정 • 빈 문자열 허용 • 테스트, 메모, 하이퍼링크 데이터 형식에만 사용가능
탐새 4단원 연습문제 문혜영교수 컴퓨터활용능력 1급 실기 연습문제 1. 다음 지시사항에 따라 고객관리 테이블을 완성하시오. 1-1. 아이디 필드와 순번필드를 기본키로 설정하시오. 1-2. 가입일 필드에는 05월 30일 형식을 설정하고 레코드 추가 시 오늘 날 짜를 자동으로 입력되도록 하되 시간은 제외하는 함수를 사용하시오. 1-3. 아이디 필드는 영문자로 시작되는 값이 입력된다. IME모드에서 영숫 자 반자를 설정하시오. 1-4. 아이디 필드는 BB-0000의 형식으로 입력되도록 입력마스크를 설정 하시오.앞의 두자리는영문대문자로 입력되도록 하시오.뒤의 네자리는 1- 9999사이의 숫자로 입력받되 공백없이 반드시 입력되도록 설 정하시오. 1-5. 아이디 필드는 동일한 값이 두번이상 입력되지 않도록 설정하시오. 1-6. 성명필드는 반드시 값이 입력되도록 설정하시오. 1-7. 전화번호 필드에 빈 문자열이 허용되도록 설정하시오. 1-8. 개수 필드에는 기본적으로 1이 입력되도록 설정하시오. 1-9. 금액필드에는 0보다 큰 값만 입력되도록 설정하시오. 1-10. 지점필드를 지점명 필드뒤에 추가하고 필드크기를 40으로 설정하시 오.(필드형식은 텍스트) 1-11. 성별 필드에는 YES/NO 두가지 형태의 데이터만 입력되도록 데이터 형식을 설정하시오. 1-12. 지점명 필드를 삭제하시오. 2. 고객관리 테이블에 대해 조회 설정을 하시오. 2-1. 지점코드에 값을 입력할 때 지점테이블의 지점코드와 지점명 필드값을 콤보상자의 형태로 표현하여 한가지만 선택되도록 설정하시오. 2-2. 필드에는 지점코드가 저장되도록 설정하시오. 2-3. 지점코드 필드와 지점명 이 모두 표시되도록 열의 너비를 각각 2cm,1.5cm로 지정하시오. 2-4. 목록이외의 값은 입력되지 않도록 하시오.
탐새 5단원 관계설정, 외부데이터 문혜영교수 컴퓨터활용능력 1급 실기 2 1 관계설정 목차 2 외부데이터 가져오기 3 외부데이터 내보내기 4 연결하기 테이블 관계설정 • 관계설정 개념 • 여러 테이블에 저장된 정보들을 연결하여 가져올 수 있도록 테이블간의 관계를 정의하는 것. • 데이터베이스 도구-관계설정 외부데이터 가져오기 • 외부데이터 가져오기 • 텍스트파일, 스프레드시트, 데이터베이스등의 데이터를 Microsoft Access테이블로 만드는 작업 • 테이블 연결 • 다른 응용프로그램의 데이터를 Microsoft Access에 연결하는 것 외부데이터 내보내기 • 개념 • 데이터 베이스 개체를 다른 응용프로그램에서 사용할 수 있도록 형식을 변경하여 출력하는 것 • 내보내기 • 액세스파일로 내보내기 • 엑셀파일로 내보내기 • 텍스트파일로 내보내기 지점관리.accdb • 1. 지점관리.accdb 제품 테이블의 지점코드는 지점테이블의 지점코드를 참조하여 두 테이블간의 관게는 M:1이다. 두 테이 블간의 관계 설정시 에레 메시지가 표시되는데 이를 해결한 후 관계를 설정하시오. 1.1 지점테이블의 지점코드는 각 데이터를 유일하게 구별하는 필드이다. 1-2. 테이블간에 항상 참조 무결성을 유지하도록 설정하시오. 1-3.지점 테이블의 지점코드가 변경되면 이를 참조하는 제품 테이블의 지점코드도 따라 변경되도록 설장하시오. • 2. 현황테이블의 수강번호 필드는 수강생테이블의 수강번호 필드를참조하는 외래키이다. 현황테이블의 수 강번호 필드의 데이터 형식과 플드속성을 설정하시오. • 3.현황.xlsx파일을 가져오시오. 3-1.현황.xlsx파일의 첫번째 행은 필드의 이름이다. 3-2.데이터를 저장할 새 테이블이름은 주문현황으로 설정하시오. 3-3.주문일자 필드는 제외하고 가져오고, 기본키 없음으로 설정하시오.
탐새 7단원 함수, 폼 연습문제 문혜영교수 컴퓨터활용능력 1급 실기 2 1 날짜 시간함수 목차 2 문자 숫자처리함수 3 도메인 계산함수 4 연습문제 날짜,시간 처리함수 NOW( ) 현재 날짜와 시간을 표시 DATE( ) 현재 날짜를 표시 TIME( ) 현재 시간을 표시 WEEKDAY(날짜) 지정된 날짜의 요일에 해당하는 숫자를 표시 (1~7) DATEVALUE(날짜) 텍스트 형식의 날짜를 일련번호로 변환 DATEPART(형식, 날짜) • 지정된 날짜에서 형식에 제시된 값만 표시 • 형식은 년(year), 월(month), 일(day)로 구분 DATEADD (형식, 값, 날짜) 지정된 날짜에서 형식(년, 월, 일)을 지정한 값 만큼 증가함 DATEDIFF (형식, 날짜1, 날짜2) 두 날짜 사이의 형식(년, 월, 일)의 경과값 을 표시 YEAR(날짜) 지정된 날짜에서 연도만 표시 MONTH(날짜) 지정된 날짜에서 월만 표시 DAY(날짜) 지정된 날짜에서 일만 표시 HOUR(시간) 지정된 시간에서 시만 표시 MINUTE(시간) 지정된 시간에서 분만 표시 SECOND(시간) 지정된 시간에서 초만 표시 MONTHNAME(인수) 지정한 인수를 월을 나타내는 문자열로 반환 DATESERIAL (연도, 월, 일) 지정된 연도, 월, 일에 해당하는 값을 날짜 형식으로 반 환 TIMESERIAL (시, 분, 초) 지정된 시, 분, 초에 해당하는 값을 시간 형식으로 반환 TIMEVALUE(시간) 텍스트 형식의 시간을 일련번호를 변환 WEEKDAYNAME (요일 번호) 요일 번호에 해당하는 요일명을 반환 문자, 숫자처리함수 LEFT(문자열, 자릿수) 왼쪽에서 주어진 자릿수만큼 추출 MID(문자열, 시작값, 자릿수) 시작 위치에서 주어진 자릿수만큼 추출 RIGHT(문자열, 자릿수) 오른쪽에서 주어진 자릿수만큼 추출 TRIM(문자열) 문자열의 좌우 공백을 제거 LTRIM(문자열) 왼쪽에 있는 공백을 제거 RTRIM(문자열) 오른쪽에 있는 공백을 제거 STRCOMP (문자열1, 문자열2) 문자열1과 문자열2를 비교하여 같으면 0, 다르면 -1을 반환 LEN(문자열) 문자열의 길이를 반환 LENB(문자열) 문자열의 길이를 바이트로 반환 LCASE(문자열) 문자열을 모두 소문자로 변환 UCASE(문자열) 문자열을 모두 대문자로 변환 REPLACE (문자열1, 시작 위치, 개수, 문자열2) 문자열1의 시작 위치에서 개수로 지정된 문자열을 문자열2 로 변경 SPACE(개수) 지정한 수만큼의 공백을 추가 STRING(개수, 문자) 문자를 지정한 수만큼 반복해서 표시 INSTR (문자열, 찾는 문자 ) 문자열에서 특정한 문자 또는 문자열이 있는 위치를 구 함 STRCONV(문자열, 형식) 문자열을 지정한 형식으로 반환 STRREVERSE(문자열) 문자열의 문자를 역순으로 정렬하여 반환 RND( ) 0~1 사이의 난수를 반환 ABS(인수) 인수의 절대값을 반환 INT(인수) 인수보다 크지 않은 정수를 반환 ROUND (인수, 소수자릿수) 지정한 인수의 숫자를 지정한 자릿 수로 반올림함 IIF(조건, 실행1, 실행2) 조건이 참이면 실행1을, 거짓이면 실행2를 수행 CHOOSE (색인번호, 실행1, 실행2, …) 색인번호가 1이면 실행1, 2이면 실행2, …를 수행 SWITCH (조건1, 실행1, 조건2, 실행2, …) 조건1이 참이면 실행1을, 조건2가 참이면 실행2, …를 수행 CDATE(문자열) 날짜 형식으로 된 문자열을 날짜로 변환 CSTR(인수) 숫자를 문자로 변환 VAL(문자열) 숫자로 이루어진 문자열을 숫자로 변환 CINT(인수),CLNG(인수) 인수를 정수(2Byte, 4Byte)로 변환 CBOOL(인수) 인수를 TRUE나 FALSE로 반환 STR(인수) 인수를 문자열로 변환 ISNULL(인수) 인수로 지정된 값이 NULL인지의 여부를 확인 ISDATE(인수) 인수로 지정된 값이 날짜 형식인지의 여부를 확인 ISNUMERIC(인수) 인수로 지정된 값이 숫자인지의 여부를 확인 ISERROR(인수) 인수로 지정된 값이 오류인지의 여부를 확인 ISOBJECT(인수) 인수로 지정된 값이 개체 변수인지의 여부를 확인 AVG(필드명) 필드의 평균을 구함 SUM(필드명) 필드의 합계를 구함 COUNT(필드명) 필드의 레코드 수를 구함 MIN(필드명) 필드에서의 최소값을 구함 MAX(필드명) 필드에서의 최대값을 구함 • 도메인 계산 함수 davg(인수, 도메인,조건) 도메인에서 조건에 맞는 자료를 대상으로 인수의 평균 dsum (인수, 도메인,조건) dcount (인수, 도메인,조건) dmin (인수, 도메인,조건) dmax (인수, 도메인,조건) dlookup (인수, 도메인,조건) • 예. Dsum(“납부금”, “현황”, “성별=‘남’”) 현황쿼리에서 성별이 남인 고객의 남부금 합계를 구하시오. 연습문제 현황폼을 지시사항에 따라 완성하시오. 1. 현황 쿼리를 폼의 레코드 원본으로 설정하시오. 2. 폼에 레코드를 추가하거나 삭제할 수 없도록 설정하시오. 3. 연속폼의 형태로 나타나도록 설정하시오. 4. 폼의 최소화 최대화 단추가 표시되지 않도록 하시오. 탐색 단추와 폼의 구분선이 표시되지 않도록 하시오.폼에 세로 스크롤 막대만 표시되도록 하시오. 5. t고객이름에 고객이름 필드,t주소를 주소필드에 연결하시오. 6. 폼 바닥글의 t인원수에는 레코드의 수를 설정하시오.(표시예 ▶전체:55) t납부금합계에는 성별이 남인 고객의 남부금 합계가 표시되도록 설정하시오.(현황쿼리와 dsum함수를 이용하시오.) 7. 본문의 컨트롤 탭순서가 t고객번호, t고객이름, c성별, t주소, t수강료, t납부금, txt미납금이 되도록 설정하시오. 8. t고객이름을 가운데 맞춤으로 정렬하시오. 9. 본문의 t미납금 컨트롤이 폼보기상태에서는 표시되지 않도록 표시 속성을 설정하시오. 10. t수강료, t납부금, t납부금합계 컨트롤은 천단위 콤마를 표시하고 소수점이하는 표시되지 않도 설정하시오. 11. 고객이름의 첫글자가 '김'인 레코드에 대해 글꼴을 굵게, 기울임으로 지정하는 조건부 서식을 설정하시오. 12. 관리폼의 본문영역에 현황폼을 하위폼으로 설정하시오. 하위폼/보고서 컨트롤의 이름은 '현황으로 하시오. 기본폼과 하위폼을 각각 과목코드필드로 연결하시오.
탐새 8단원 컨트롤, 폼 연습문제 문혜영교수 컴퓨터활용능력 1급 실기 2 1 컨트롤 개념 목차 2 컨트롤 종류 3 컨트롤 내용 4 연습문제 컨트롤 개념 • 개념 • 폼이나 보고서에서 데이터를 표시하고, 매크로나 함수등의 명령을 실행하는데 사용되는 그래픽 개체 • 바운드 컨트롤 • 언바운드 컨트롤 • 계산컨트롤 컨트롤 종류 연습문제 상품판매 폼------ 1. 폼 바닥글에 레이블을 생성한 후 "합계: "를 입력하고 글꼴은 돋움, 크기는 9, 글꼴두께는 굵게, 컨트롤이름 은 L합계로 지정하시오. 2. t금액합계 컨트롤에 금액의 합계를 표시하고 형식은 통화, 특수효과를 오목으로 설정하시오. 3. 폼이 팝업 폼으로 열리도록 설정하고, 폼이 열려 있을 경우 다른 작업을 수행할 수 없도록 하시오. 4. t단가 컨트롤에는 상품번호가 t상품번호에 해당하는 상품의 단가를 표시하도록 구현하시오. 상품 테이블과 dlookup()함수 사용 5. 상품판매 폼의 바닥글 영역에 명령단추를 생성하시오. 명령단추를 누르면 폼이 닫히도록 설정하시오. 컨트롤 이름은 c닫기로 설정하시오. 켭션은 닫기로 설정하시오. 6. 폼 머리글에 사과이미지를 삽입하고 너비 1cm,높이 0.5cm로 설정하시오.
탐새 9단원 보고서 문혜영교수 컴퓨터활용능력 1급 실기 2 1 보고서 개념 목차 2 보고서 구성 3 보고서 그룹 4 보고서 만들기 보고서 구성 • 개념 • 테이블이나 질의등의 데이터를 요약하여 출력하기 위한 개체이다. • 구성 • 보고서 머리글, • 페이지 머리글 • 그룹 머리글 • 본문 • 그룹 바닥글 • 페이지 바닥글 • 보고서 바닥글 • 보고서 선택기 • 구역 선택기 • 컨트롤 보고서 작성 • [만들기]-[보고서]그룹 • [보고서] : 빠른 시간에 간단한 보고서를 자동으로 만들어 준다. • [보고서디자인] : 필드목록과 컨트롤을 이용하여 수동으로 보고서를 작성한다. • [새 보고서] : 레이아웃 보기 상태에서 필드를 추가하여 보고서를 작성한다. • [보고서 마법사] : 마법사가 진행되는 순서에 따라 설정 사항을 지정해나가는 방식 • [레이블] : 편지봉투에 붙이는 주소레이블을 인쇄용 보고서로 작성한다. • [업무문서양식마법사] : 기업에서 작성하는 세금 계산서, 거래명세서등 업무 양식용 보고서 • [우편 엽서 마법사] : 우편 엽서용 보고서를 작성한다.
탐새 10단원 보고서 연습문제 문혜영교수 컴퓨터활용능력 1급 실기 연습문제 운송방법.accdb 현황출력 보고서를 완성하시오. 1. 현황 쿼리를 레코드 원본으로 설정하시오. 2. 운송방법 필드를 기준으로 오름차순으로 정렬하고, 운송방법필드의 내용이 동일하면 중량필드를 기준으로 오름차순으로 정렬하시 오. 운송방법의 그룹바닥글이 화면에 표시되도록 설정하시오. 3.그룹의 데이터가 다음 페이지로 넘어가면 운송방법 머리글의 내용이 다음 페이지에도 표시되도록 설정하시오. 4. 운송방법 머리글 영역에 있는 t운송방법에는 운송방법이 표시되도록 설정하시오. 5. 본문영역의 운송방법의 값이 이전 레코드와 같은 경우에는 표시되지 않도록 설정하시오. 6. 중량 컨트롤의 빈공간에 ▶이 반복하여 표시되도록 설정하시오. 7. 운송방법 바닥글 영역에 운송 별 접수건수가 표시되도록 컨트롤을 생성하시오. 표시형식 접수건수 : 10 컨트롤 이름 : t접수건수 8. 페이지 바닥글의 t날짜 컨트롤에 현재 날짜가 표시되도록하시오.(예. 2019-01-02) 9. 페이지 바닥글의 페이지가 표시된 t페이지 컨트롤에는 페이지가 표시되도록 하시오. (예.총3페이지 중 현재2페이지 입니다.) 10. 용지방향을 가로로 인쇄되도록 하시오.
*************
Hybrid TCP/IP Offload Engine의 프로토타입 개발* O Development of a Prototype for Hybrid TCP/IP Offload Engine Hankook Jang0 Jong-Hoon Park Sang-Hwa Chung Department of Computer Engineering, Pusan National University 요 약 TOE(TCP/IP Offload Engine)은 호스트 CPU가 아닌 네트워크 어댑터 상에서 TCP/IP 프로토콜을 처리하여 호스트 CPU의 부하를 줄이는 기술이다. TOE의 구현 방안으로는 임베디드 프로세서를 사용하여 TCP/IP를 처 리하는 소프트웨어적인 구현 방법과 TCP/IP의 모든 기능을 하드웨어로 구현하는 접근 방법이 제안되어왔다. 본 논문에서는 하드웨어적인 접근 방법과 소프트웨어적인 접근 방법을 결합한 Hybrid TOE 구조를 개발하기 위해 FPGA와 ARM 프로세서에 기반한 프로토타입을 개발하였다. Hybrid TOE는 많은 작업 부하로 인하여 임 베디드 프로세서 상에서 성능을 확보하기 어려운 기능들은 하드웨어로 구현하고, 연결 설정과 같이 통신의 성 능에 큰 영향을 끼치지 않는 기능들은 임베디드 프로세서 상에서 소프트웨어로 처리한다. 또한 본 논문에서는 실험을 통해 Hybrid TOE 프로토타입이 호스트 CPU 상에 발생하는 부하를 줄임을 입증하고, 하드웨어 구현 을 통해 통신의 성능을 향상시킬 수 있음을 보였다. 1. 서 론* 현재 가장 널리 사용되고 있는 통신 프로토콜인 TCP/IP는 컴퓨터 시스템의 호스트 CPU가 처리하는 것이 일반적인데, 이는 호스트 CPU 상에 막대한 부하(load)를 발생시켜 전체 시스템의 성능을 저하시킨다는 문제점을 가진다[1]. 이를 해 결하는 방안으로 최근 TCP/IP를 네트워크 어댑터에서 처리 하는 TOE (TCP/IP Offload Engine) 기술이 제안되었다. TOE를 개발하는 데에는 두 가지 접근 방법이 제안되어 왔 다. 첫 번째 방법은 네트워크 어댑터에 탑재한 임베디드 프 로세서 상에서 소프트웨어로 TCP/IP를 처리하는 방안으로, TCP/IP를 하드웨어로 구현하는 방안에 비해 구현이 쉽다는 장점을 가진다 [2]. 그러나 임베디드 프로세서는 호스트 CPU에 비해 성능이 낮으므로, 네트워크의 성능이 다소 떨어 지는 단점이 있다. 두 번째 방법은 TCP/IP를 처리하는 전용 ASIC을 개발하는 방안이다 [3][4]. 이 방안은 네트워크의 성능을 보장할 수 있지만 [5], TCP/IP를 기반으로 하는 상위 수준 프로토콜을 네트워크 카드에서 같이 처리하고자 할 때 이에 대응하기가 어렵다. 본 연구진은 선행 연구[6]에서 하드웨어 기반의 TOE 구현 방안과 소프트웨어 기반의 TOE 구현 방안을 결합한 Hybrid TOE 구조를 제안하였다. Hybrid TOE 구조는 많은 작업 부 하로 인하여 임베디드 프로세서 상에서 성능을 확보하기 어 려운 기능들은 하드웨어로 구현하고, 연결 설정과 같이 통신 * 이 논문은 교육인적자원부 지방연구중심대학육성사업(차세대 물류IT기술연구사업단)의 지원에 의하여 연구되었음. 의 성능에 영향을 크게 끼치지 않는 기능들은 임베디드 프로 세서 상에서 소프트웨어로 처리한다. 그 결과 Hybrid TOE는 하드웨어 기반의 TOE에 근접하는 성능을 제공할 수 있으며, 새로운 기능을 추가하거나 TCP/IP를 기반으로 하는 상위 프 로토콜까지 네트워크 어댑터에서 처리할 수 있으므로 구조 의 유연성 측면에서 장점을 가진다. 본 논문에서는 FPGA와 ARM 프로세서를 탑재한 보드를 개발하고, 이를 기반으로 Hybrid TOE의 프로토타입을 개발 하였다. Hybrid TOE 프로토타입의 하드웨어 모듈은 FPGA 상에 구현되고, 소프트웨어 모듈은 ARM 프로세서 상에서 구 현된다. 본 논문에서는 실험을 통해 Hybrid TOE가 호스트 CPU 상에서 발생하는 부하를 크게 감소시킬 수 있음을 입증 하였고, 또한 하드웨어 구현을 통해 통신 성능의 향상이 가 능함을 입증하였다. 본 논문은 구성은 다음과 같다. 2장에서는 Hybrid TOE 구 조에 대해 설명하고, 3장에서 Hybrid TOE 프로토타입에 대 해 설명한다. 4장에서는 실험 결과를 제시한다. 마지막으로 5장에서는 결론과 향후 연구를 제시한다. 2. Hybrid TOE 구조 그림 1은 Hybrid TOE와 이에 기반한 네트워크 어댑터의 구조를 보여준다. Hybrid TOE 어댑터는 Hybrid TOE Module, TOE Interface, Memory Controller 및 Gigabit Ethernet Controller로 구성된다. Hybrid TOE Module은 Hybrid TOE 어댑터의 핵심 모듈로서, 두 개의 임베디드 프 로세서 코어와 한 개의 TOE Hardware Module로 구성된다. 임베디드 프로세서는 소프트웨어로 처리할 TCP/IP 기능을 구현하며, 두 개의 임베디드 프로세서를 사용하여 송수신과 정을 분담하여 처리함으로써 호스트 CPU에 비해 성능이 떨 어지는 임베디드 프로세서의 단점을 극복할 수 있다. 또한 송신 프로세스와 수신 프로세스 사이의 스케줄링에 의한 작 업 전환 오버헤드를 제거할 수 있다. TOE Hardware Module 은 하드웨어로 처리할 TCP/IP 기능을 구현하며, TOE Interface는 호스트 CPU와의 인터페이스를 담당한다. Memory Controller는 패킷 버퍼의 운용에 필요한 버퍼 메모 리를 관리하는 역할을 담당한다. 패킷 버퍼는 TCP, IP, 그리 고 MAC 헤더들을 저장하기 위한 헤더 영역과 송수신 데이터 를 저장하기 위한 데이터 영역으로 구성되며, 송수신 패킷을 저장하는 데 사용된다. Gigabit Ethernet Controller는 Gigabit Ethernet MAC/PHY 칩과의 인터페이스를 담당한다. Host PCI Bus FPGA TOE Interface Hybrid TOE Module Embedded TOE Hardware Module Processor Core for Sending Memory Controller Embedded Processor Core for Receiving Gigabit Ethernet MAC/PHY Gigabit Ethernet Controller 그림 2. Hybrid TOE 프로토타입 보드 Gigabit Ethernet MAC/PHY control path data path 그림 1. Hybrid TOE 어댑터의 구조 Hybrid TOE 어댑터를 사용한 통신의 전체적인 동작 과정 은 다음과 같다. 호스트 CPU의 사용자 프로그램이 Hybrid TOE를 사용한 통신을 요청하면, 이 요청은 호스트의 운영체 제의 TCP/IP 프로토콜 스택을 거치지 않고 TOE Interface로 직접 전달된다. TOE Interface는 이 요청을 Hybrid TOE Module로 전달하고, Hybrid TOE Module에서는 하드웨어와 소프트웨어를 연동하여 요청된 작업을 처리한다. 요청된 작 업이 데이터의 송신인 경우 Hybrid TOE Module은 패킷 버 퍼를 생성한 후 원격 노드로 전송할 데이터를 호스트 CPU의 메인 메모리에서 패킷 버퍼의 데이터 영역으로 DMA를 사용 하여 가져온다. Hybrid TOE Module은 패킷 버퍼의 헤더 영 역에 TCP/IP 헤더와 MAC 헤더를 생성하여 패킷을 완성하고, 패킷 생성이 끝나면 Gigabit Ethernet Controller에 패킷의 전송을 요청한다. 마지막으로 Gigabit Ethernet Controller의 요청을 받은 Gigabit Ethernet MAC이 DMA를 사용하여 패킷 버퍼로부터 그 패킷을 가져가서 수신 노드로 전송한다. 수신 과정에서는 송신 과정의 역순으로 수신 패킷이 처리 된다. 요청된 작업의 처리가 끝나면 TOE Interface가 호스트 CPU에 인터럽트를 발생시켜 처리가 완료되었음을 알리고, 호스트 CPU는 TOE Interface에 저장된 처리 결과를 읽어가 서 이를 사용자 프로그램에 반환한다. 3. Hybrid TOE 프로토타입 본 논문에서는 Hybrid TOE의 최종 구현에 앞서 FPGA와 Hybrid TOE 프로토타입에서는 그림 3과 같이 송신 과정에 서 패킷 버퍼의 생성과 사용에 관련된 세 가지의 하드웨어 유닛과 함께 하드웨어 모듈과 소프트웨어 모듈의 연동을 지 원하는 HW/SW Interface를 개발하였다. TOE Interface TOE Interface Hybrid TOE Module MAU MAU ... .. . Packet Buffer Packet Buffer ... .. . Packet Buffer Memory Packet Buffer Memory DFU PCU DFU PCU TOE Hardware Module TOE Hardware Module ADDRESS READY ADDRESS READY DMA_DONE DMA_DONE PSUM PSUM Interface HW/SW 그림 3. TOE Hardware Module과 HW/SW Interface TOE Hardware Module에서 MAU (Memory Allocation Unit)는 데이터 및 헤더를 저장하는 패킷 버퍼를 생성하기 위 해 패킷 버퍼 메모리를 관리한다. DFU (Data Fetch Unit)는 TOE Interface 내부의 DMA 엔진을 사용하여 메인 메모리에 서 패킷 버퍼의 데이터 영역으로 송신 데이터를 복사한다. PCU (Partial Checksum Calculation Unit)는 DFU에 의해 데이터가 복사되는 동안 데이터의 부분(partial) 체크섬을 계 산한다. Memory Gigabit Ethernet Controller FLASH Memory TOE Hardware Module HW/SW Interface SDRAM TOE Interface Hybrid TOE Module ARM Processor 단일 임베디드 프로세서에 기반한 Hybrid TOE 프로토타입 을 개발하였다. 그림 2는 Hybrid TOE 프로토타입 보드의 구 조를 보여준다. FPGA는 Xilinx사의 Virtex-II Pro (XC2VP30) 를 채택하였고, 임베디드 프로세서는 삼성전자의 ARM 프로 세서(S3C2410X)를 채택하였다. 그리고, Gigabit Ethernet MAC/PHY chipset으로는 National사의 DP82820/DP83865 을 사용하였다. FPGA에는 TOE Interface, TOE Hardware Module, HW/SW Interface 및 Gigabit Ethernet Controller 가 구현되었다. 이 중에서 TOE Hardware Module은 송신 과 정에서 패킷 버퍼와 관련된 세 가지 기능을 처리한다. 그리 고, HW/SW Interface는 하드웨어와 소프트웨어 사이의 연 동 메커니즘을 구성하는 핵심 요소로서 TOE Hardware Module과 ARM 프로세서 사이의 인터페이스를 제공한다. Host PCI Bus HW/SW Interface에서 ADDRESS 필드는 MAU에 의해 할 당된 패킷 버퍼의 주소를 저장하고, READY 필드는 패킷 버 퍼가 준비되었는지의 여부를 나타낸다. DMA_DONE 필드는 DFU에 의한 데이터 복사가 끝났는지의 여부를 나타내고, PSUM 필드에는 PCU가 계산한 부분 체크섬이 저장된다. Hybrid TOE 프로토타입의 소프트웨어 모듈은 ARM 프로 세서 상에서 임베디드 리눅스를 사용하여 개발하였다. 임베 디드 리눅스는 다른 운영체제에 비해서 네트워크 성능이 우 수하고, TCP/IP 프로토콜 스택을 포함한 커널의 수정이 용이 하기 때문에 선택되었다. 또한 임베디드 리눅스를 사용하면 TCP/IP를 기반으로 하는 상위 프로토콜을 네트워크 어댑터 에서 오프로딩하는 방향으로 TOE를 응용할 때 편리한 개발 환경을 제공할 수 있다. ARM 프로세서는 소켓 버퍼 구조체를 생성할 때 READY 필드를 폴링하여 패킷 버퍼가 생성되었는지를 검사한다. READY 필드가 세팅되면 ARM 프로세서는 ADDRESS 필드 를 통해 패킷 버퍼의 주소를 획득한다. 이어서 ARM 프로세 서는 DMA_DONE 필드를 폴링하여 데이터 복사 및 부분 체 크섬 계산의 완료를 감시하고, DMA_DONE 필드가 세팅되면 PSUM 필드에서 부분 체크섬을 가져온다. 이후 ARM 프로세 서는 TCP/IP 헤더 및 MAC 헤더를 생성하여 패킷 버퍼의 헤 더 영역으로 복사하고, 생성된 패킷은 수신 노드로 전송된다. 4. 실험 및 분석 그림 4는 TCP/IP 기반 통신을 수행할 때 Hybrid TOE 프로 토타입(Hybrid TOE)을 사용한 경우와 일반 Gigabit Ethernet 어댑터(GBE)를 사용한 경우의 호스트 CPU 점유율을 비교하 고 있다. Gigabit Ethernet 어댑터로는 Intel PRO/1000MT Server Adapter를 사용하였다. 일반 Gigabit Ethernet 어댑 터를 장착한 시스템의 경우 호스트 CPU 점유율은 데이터의 크기에 따라 50~80% 정도인 반면에, Hybrid TOE 프로토타 입을 장착한 시스템의 경우 호스트 CPU 점유율은 약 9%로 일정하며 일반 Gigabit Ethernet 어댑터를 장착한 시스템보 다 훨씬 낮은 것을 알 수 있다. 이러한 결과는 Hybrid TOE 프로토타입이 호스트 CPU에서 TCP/IP를 처리하는 부하를 크게 감소시키는 효과를 입증하는 것이다. 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 0.0 8 16 32 64 128 256 512 1024 2048 Data size (bytes) 그림 4. TOE와 일반 NIC의 CPU 점유율 비교 표 1은 임베디드 리눅스만을 사용하여 구현한 소프트웨어 TOE(S/W TOE)와 본 논문에서 개발한 하드웨어 유닛을 적 용한 Hybrid TOE 프로토타입(Hybrid TOE)의 성능을 비교한 결과로서, 하드웨어 유닛을 적용한 경우(S2, S3, S8) 소프트 웨어 구현에 비해 약 9~56배의 성능 향상이 있음을 알 수 있 다. GBE hybrid TOE Label S1 S2 S3 S4 S5 S6 S7 S8 S9 표 1. Hybrid TOE와 S/W TOE의 성능 비교 (단위 : µs) Operation Hybrid TOE Enter TCP layer from interrupt handler Create packet buffer Fetch data from main memory Create TCP header Enter IP layer from TCP layer Create IP header Enter device driver from IP layer and Create MAC header Copy packet to TX Buffer Complete transmission S/W TOE 469.2 469.2 1.0 7.7 48.9 52.6 49.0 32.7 12.2 10.0 69.6 48.9 52.6 49.0 32.7 690.5 104.2 104.2 표 1의 결과에서 보듯이 소프트웨어로 TCP/IP를 처리할 때 TCP/IP/MAC 헤더를 생성하는 과정, 각 계층간의 전환 과 정, 처리 결과를 생성하여 호스트 CPU로 보고하는 과정 등 에서 많은 시간이 소모되고 있다. 따라서, Hybrid TOE의 성 능을 극대화하기 위해서는 각 계층간의 전환 과정에서 발생 하는 오버헤드를 줄이고, 헤더 생성 및 처리 결과의 보고를 하드웨어로 처리하는 등의 최적화가 필요할 것으로 분석된 다. 5. 결론 및 향후 연구 본 논문에서는 FPGA와 ARM 프로세서를 기반으로 하는 Hybrid TOE 프로토타입을 개발하였다. 실험 결과 Hybrid TOE 프로토타입의 CPU 점유율은 9% 이하로서 호스트 CPU 에서 발생하는 부하를 크게 감소시키는 효과를 입증하였다. 또한, 하드웨어/소프트웨어를 연동한 Hybrid TOE 프로토타 입이 소프트웨어 TOE에 비해서 성능이 우수하였다. 향후 과 제로는 헤더 생성 등의 과정을 하드웨어로 처리하는 등의 최 적화를 통해 Hybrid TOE의 성능을 극대화할 계획이다.