KR100218383B1 - 피엘씨의 멀티 씨피유 모듈 시스템 - Google Patents

피엘씨의 멀티 씨피유 모듈 시스템 Download PDF

Info

Publication number
KR100218383B1
KR100218383B1 KR1019960031879A KR19960031879A KR100218383B1 KR 100218383 B1 KR100218383 B1 KR 100218383B1 KR 1019960031879 A KR1019960031879 A KR 1019960031879A KR 19960031879 A KR19960031879 A KR 19960031879A KR 100218383 B1 KR100218383 B1 KR 100218383B1
Authority
KR
South Korea
Prior art keywords
module
cpi
state
plc
program
Prior art date
Application number
KR1019960031879A
Other languages
English (en)
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 KR1019960031879A priority Critical patent/KR100218383B1/ko
Application granted granted Critical
Publication of KR100218383B1 publication Critical patent/KR100218383B1/ko

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

본 발명은 피엘씨의 멀티 씨피유 모듈 시스템에 관한 것으로, 특히 피엘씨 시스템의 처리속도를 향상시켜 빠른 속도의 제어를 요하는 피엘씨 제어 시스템에 적용할 수 있도록 한 피엘씨의 멀티 씨피유 모듈 시스템에 관한 것으로, 종래에는 유저가 작성한 프로그램 블록을 하나의 씨피유에 모아 놓아, 이러한 시스템에서는 시스템의 속도를 빠르게 하더라도 시켄스로 처리되기 때문에 프로그램 및 데이터의 규모가 커지면 그만큼 처리속도가 느려지는 단점이 있었고 또한 이러한 단점을 해결하기 위하여 하나의 피엘씨 시스템의 씨피유와 또다른 피엘씨 시스템의 씨피유를 통신모듈을 이용하여 연결하고 있으나, 이또한 속도와 가격의 한계에 부딪히는 문제점이 있었다.
따라서 본 발명은 이러한 문제점을 감안하여 하나의 유저 프로그램 블록을 여러개의 프로그램 리소스 블록(230)으로 독립적으로 나누고, 서로 동일하게 구성된 각각의 씨피유 모듈(200)에 중계 모듈(210)을 통해 상기 프로그램 리소스 블록(230)이 전송되도록 하며, 상기 중계 모듈(210)은 상기 씨피유 모듈(200)간의 정보 공유와 글로벌 버스(240)을 사용하기 위한 버스사용 허가신호를 만들어 내도록 구성함으로써 시스템의 속도를 향상시킬 수 있는 효과가 있게 된다.

Description

피엘씨의 멀티 씨피유 모듈 시스템
본 발명은 피엘씨의 멀티 씨피유 모듈 시스템에 관한 것으로 특히 피엘씨 시스템의 처리속도를 향상시켜 빠른 속도의 제어를 요하는 피엘씨 제어 시스템에 적용할 수 있도록 한 피엘씨의 멀티 씨피유 모듈 시스템에 관한 것이다.
최근 산업분야에서 빠른 제어시스템에 대한 요구가 계속적으로 증가되어왔고, 특히 자동차 관련 분야에서는 빠르고 신뢰성이 높은 시스템 레벨의 피엘씨에 대한 요구가 증가되고 있다. 종래의 피엘씨 시스템은 도1에 도시된 바와같이 유저가 작성한 프로그램 블록을 하나의 씨피유(100)에 모아 놓아, 이러한 시스템에서는 시스템의 속도를 빠르게 하더라도 시켄스로 처리되기 때문에 프로그램 및 데이터의 규모가 커지면 그만큼 처리속도가 느려지는 단점이 있었다.
또한 이러한 단점을 해결하기 위하여 하나의 피엘씨 시스템의 씨피유(100)와 또다른 피엘씨 시스템의 씨피유를 통신모듈(130,130')을 이용하여 연결하고 있으나, 이또한 속도와 가격의 한계에 부딪치는 문제점이 있었다.
따라서, 본 발명은 종래의 이러한 문제점을 감안하여 하나의 유저 프로그램 블록을 몇 개의 작은 프로그램 블록으로 나누어 즉, 하나의 시스템을 독립적 여러개의 프로그램 리소스로 나누어서 멀티로 시스템을 운용함으로써 처리속도를 향상시키는데 목적이 있는 것으로 이와 같은 목적을 갖는 본 발명을 상세히 설명한다.
제1도는 종래 피엘씨 시스템을 나타낸 블록도.
제2도는 본 발명 피엘씨의 멀티 씨피유 모듈 시스템을 나타낸 블록도.
제3도는 제2도의 씨피유 모듈의 내부 블록도.
제4도는 제3도의 제이로직의 내부 블록도.
제5도는 제2도의 중계모듈의 내부 블록도.
제6도는 중계모듈과 전체 시스템간의 초기화 방법을 나타낸 흐름도.
제7도는 제6도의 시스템 초기화 과정의 상세 흐름도.
제8도는 제6도의 멀티 초기화의 상세 흐름도.
제9도는 제5도에 의거한 이전상태 천이의 일예를 보인 도.
제10도는 제5도에 의거한 현재상태 천이의 일예를 보인 도.
제11도는 제5도에 의거한 특수모듈상태 천이의 일예를 보인 도.
제12도는 제5도에 의거한 버스사용 허가신호에 대한 흐름도.
제13도는 제12도에 의거한 선입력 실행루프의 상세 흐름도.
제14도는 제12도에 의거한 우선 순위 실행루프의 상세 흐름도.
제15도는 제12도에 의거한 이전실행루프의 상세 흐름도.
제16도는 제5도에 의거한 특수모듈 사용허가 신호에 대한 흐름도.
* 도면의 주요부분에 대한 부호의 설명
200 : 씨피유 201 : 프로세서
202, 206 : 버퍼 203 : 로직연산 프로세서
204 : 유저 프로그램 205 : 제어로직
210 : 중계모듈 211 : 이전상태 체크부
212 : 스테이트 머신 213 : 벡터 어드레스 영역
214 : 공용 메모리 220 : 입출력부
230 : 프로그램 리소스 240 : 글로벌 버스
본 발명 피엘씨의 멀티 씨피유 모듈 시스템은 도2에 도시한 바와같이, 하나의 유저 프로그램 블록을 여러개의 프로그램 리소스 블록(230)으로 독립적으로 나누고, 서로 동일하게 구성된 각각의 씨피유 모듈(200)에 중계 모듈(210)을 통해 상기 프로그램 리소스 블록(230)이 전송되도록 하며, 상기 중계 모듈(21)은 상기 씨피유 모듈(200)간의 정보 공유와 글로벌 버스(240)를 사용하기 위한 버스사용 허가신호를 만들어 내도록 구성한다.
한편, 상기 중계 모듈(210)은 도5에 도시한 바와같이, 버스사용 요구신호를 인가받아 버스사용 허가신호를 생성하는 이전상태 체크부(211) 및 스테이트 머신(212)과, 특수모듈 사용요구 신호를 인가받아 특수모듈 사용허가 신호를 생성하는 벡터 어드레스 영역(213)과, 시스템 전체의 공통변수를 저장하는 공용 메모리(214)로 구성된다.
또한, 상기 씨피유 모듈(200)은 도3에 도시한 바와같이, 시스템의 상태와 운용을 담당하는 프로세서(201)와, 유저 프로그램(204)을 수행하는 로직 연산 프로세서(203)와, 시스템을 제어하는 제어신호와 시스템의 상태를 체크하는 제어로직(205)으로 구성된다.
이와 같이 구성한 본 발명의 작용을 도2 내지 도16까지 참조하여 상세히 설명한다.
초기화시 최초 시스템에 전원이 들어오면 씨피유 모듈(200)들이 깨어나고, 처음에 장착된 씨피유1 모듈이 초기 마스터로서 시스템 초기화 동작을 수행하며, 중계모듈(210)의 스테이트 머신(212)로부터 입력되는 멀티 씨피유상태 체크신호 즉, 버스사용 허가신호를 씨피유1 모듈 내부의 제어로직(205)의 시스템 입출력부(205-3)에서 읽어들여 씨피유의 개수와 자기 위치번호를 인지한다.
이때, 상기 제어로직(205)의 동작을 도4를 참조하여 설명한다.
글로벌 버스 액세스 제어신호 발생기(205-1)에서는 버스사용 요구신호, 쓰기, 읽기, 준비, 허가등의 신호를 만들어 내는데 씨피유 모듈(200)에서 버스사용 요구신호를 액티브시키면 도5에 도시한 중계모듈(210)의 이전상태 체크부(211)와 스테이트 머신(212)에서 버스사용 허가신호를 내며, 시스템 입출력부(205-3)에서 멀티 씨피유상태 체크신호 즉, 버스사용 허가신호를 체크하여 글로벌 버스 액세스 제어신호 발생기(205-1)를 통해 허가신호를 만들어 내고, 연이어 쓰기 및 읽기신호와 어드레스, 데이터신호를 글로벌버스에 출력한다.
상기 글로벌 버스상에 존재하는 입출력 혹은 특수모듈은 쓰기 또는 읽기신호를 받아서 준비신호를 만들어 내고, 글로벌 버스 액세스 제어신호 발생기(205-1)에서는 이 준비신호를 체크하여 글로벌 버스 액세스 사이클이 완성되었음을 인지한다.
정상적인 글로벌 버스의 액세스 사이클의 감시를 타임아웃 체크부(205-2)에서 하게되는데, 여기에서는 한 사이클의 액세스 타임과, 시스템의 액세스 타임을 체크하게 된다.
한 사이클의 액세스 타임 아웃이 발생하면 에러가 발생한 씨피유 모듈(200) 스스로가 에러를 외부에 알리고 시스템을 정지시킨다.
시스템 액세스 타임 아웃이 발생하면 각 씨피유 모듈(200)이 중계모듈(210)의 시스템 체크 영역을 통하여 에러가 발생한 씨피유 모듈을 검색하고 에러를 외부에 알리게 된다.
시스템 입출력부(205-3)에서는 시스템의 상태를 입출력부를 통하여 지속적으로 감시하여 멀티 씨피유 상태 체크와 씨피유모듈 상태, 시스템의 상태등 3가지의 상태를 체크하게 되는데 멀티 씨피유상태 체크신호는 각 씨피유모듈의 존재여부, 버스사용 허가신호등을 감시하고 , 씨피유 모듈상태 체크신호는 씨피유 모듈 스스로의 상태를 감시한다.
그리고, 시스템 상태 체크신호는 시스템 전체의 상태를 감시하게 되는데, 여기서는 전원의 상태, 각 모듈집단의 상태, 통신상태등을 감시하게 된다.
이렇게 제어로직(205)이 동작하게 되고, 씨피유1 모듈은 도5에 도시한 중계모듈(210)내부의 모듈상태 신호중 사용허가 신로를 읽어서 자기에게 할당되었는지를 확인하게 되며, 이 신호는 초기화시에 하드웨어 싱크신호로 사용되는데 이는 씨피유모듈(200)들의 초기 동기를 맞추기 위한 것이다.
만약 씨피유1 모듈에게 신호가 할당되지 않았으면 자기의 벡터 어드레스 영역(213)에 아이디(ID)를 써놓고 다시 확인하게 된다.
이후 씨피유 모듈1은 중계모듈(210)과 전체 시스템에 대한 초기화 작업을 수행한다.
공용 메모리 (214) 즉, 데이터 메모리 및 유저 메모리의 초기화는 공용 메모리(214)의 전 영역을 특정코드로 저장하여, 틀린 데이터가 잘못 쓰여진 것을 방지하기 위해서 시스템이 동작하기 시작할 때 씨피유1 모듈은 이 영역을 체크하고, 특정코드로 글로벌 버스 액서스 제어신호 발생기(205-1)에서 쓰기를 수행한다.
이러한 특정코드의 공용 변수영역의 지정은 씨피유 모듈(200) 사이에 주고 받을 데이터나 파라미터를 저장하는 곳으로, 초기화시 유저 프로그램 블록(230)에서 글로벌변수로 지정되어진 데이터나 파라미터의 저장영역을 이곳으로 옮겨서 지정한다.
시스템 전영역의 입출력 초기화는 유저 프로그램 블록(230)에서 지정한 입출력의 상태와 시스템 스스로가 체크한 입출력의 상태를 비교함으로써 이루어지며, 시스템 전영역의 특수모듈 초기화는 유저 프로그램 블록(230)에서 지정한 특수모듈의 상태와 시스템 스스로가 체크한 특수모듈의 상태를 비교함으로써 이루어 진다.
이렇게 체크된 진단 결과는 중계모듈(210)의 이전상태 체크부(211)에 기록되며, 이 기록된 결과에 따라 시스템의 동작여부를 결정하게 되는데 만약 유저가 약간의 에러가 발생한 상태에서 동작을 감행하겠다면 시스템은 에러경보를 표시하면서 시스템을 동작시키게 된다.
이때, 에러가 발생한 유저 프로그램 블록(230)은 동작을 중지하게 되며, 만약 유저 프로그램 블록(230)이 완전히 독립적이지 못하다면 이에 연관된 블록 또한 동작을 멈추게 한다.
이렇게 초기화작업이 끝난 후 공용 메모리(214)의 소프트 웨어 싱크영역에 자신의 소프트 웨어 싱크 코드를 써넣게되며, 이 소프트 웨어 싱크는 시스템 동작의 동기를 맞추기 위한 것이다.
다음 중계모듈(210)의 벡터 어드레스 영역에 씨피유2 모듈의 아이디(ID)를 써넣어서 하드웨어 싱크를 씨피유2 모듈에게 넘긴 후 빠져나오게 되면 이후 씨피유1 모듈은 루프를 돌면서 초기화 루프가 끝나는가를 체크하게 된다.
이런식으로 씨피유모듈(200)들은 자기 아이디(ID)를 확인하고, 중계모듈(210)을 엑세스하여 소프트 웨어 싱크영역에 싱크코드를 써놓고, 초기에 써야할 변수값을 변수영역에 써놓은 후 다음 씨피유모듈의 벡터 어드레스 영역에 아이디(ID)를 써놓고 빠져 나오게 된다.
맨 마지막의 씨피유 모듈은 초기화 작업이 끝난 후 씨피유1 모듈의 아이디를 써 놓은 다음 빠져나온다.
상기 씨피유1 모듈은 이 아이디 모드를 보고 초기화 씨피유 모듈(200)인식작업이 끝났음을 인지하고 시스템 동작 모드로 전환한다.
이후 각각의 씨피유 모듈들은 독립적으로 동작하며, 중계모듈(21)로부터 시스템의 동작과 정지명령을 받아서 개별적으로 동작한다.
정보의 전달은 중계모듈(210)의 공용 메모리(214)를 통하여 정보를 주고 받고 중계모듈(210)에서는 씨피유 모듈(200)에서 출력되는 버스사용 요구신호를 인가받아 도12에 도시한 바와같은 흐름으로 버스사용 허가신호를 만들어 내는데 이를 상태도를 참조하여 설명한다.
도9는 중계모듈(210)의 이전상태 체크부(211)의 상태 천이의 일예를 보인 도이고, 도10은 스테이트 머신 (210)의 현재상태 천이의 일예를 보인 도로서, 씨피유1 모듈이 글로벌 버스를 사용하기 위해서 버스사용 요구신호(1)를 액티브 시키면 이때 중계모듈(210)쪽에서 보는 버스사용 요구신호의 입력상태는 '0001'이 되고 이전상태는 'm'이 된다.
도10의 현재상태에서는 'G'경로를 따라서 'F'에서 'A'로 현재상태 출력이 바뀌어 씨피유1 모듈에게 글로벌 버스 액세스권을 주게 된다.
씨피유1 모듈이 액세스한 중간에 씨피유2 모듈이 엑세스권을 요구하기 위해 버스사용 요구신호(2)를 액티브시키면, 이 시점에서 버스사용 요구신호의 입력은 '0011'로 변화된다.
그러나, 버스사용 요구신호(1)는 여전히 액티브되어 있고, 이 상태는 씨피유1 모듈이 동작을 끝내지 않았음을 나타내므로 현재 상태 출력은 'A'를 유지한다.
씨피유1 모듈이 액세스를 모두 끝내고, 버스사용 요구신호(1)를 거두면 중계모듈(21)쪽에서의 입력은 '0010'이되고, 이때부터 도9의 이전상태 천이도의 'a'경로를 따라 이전상태값은 'n'이 되면서 씨피유2 모듈에게 액세스권을 할당할 수 있는 상태가 된다.
이전 상태 체크의 변화값은 현재 상태 스테이트 머신(21)으로 전달되고, 이 변화에 의해 현재상태의 출력값은 더미상태(Dummy state) 'F'로 천이된다.
더미상태에서 변화된 이전상태 체크의 값 'n'과 스테이트 머신 (212)의 이전상태의 값 'A'를 비교하여 스테이트 머신(212)에서는 'J'경로를 따라 현재 상태 출력값 'B'로 천이한다.
그러므로 현재 상태 출력값을 받는 씨피유 2 모듈은 글로벌 버스를 액세스할 수 있게 된다.
도11은 중계모듈(210)의 특수모듈의 사용권 분배에 대한 상태 천이의 일예를 보인 도로서, 통신모듈과 일반 특수모듈의 사용요구는 하나의 씨피유 모듈에서 동시에 통신모듈과 일반 특수모듈들을 액세스하도록 하고 동일 시점에서 여러 씨피유 모듈이 여러 개의 통신모듈 혹은 일반 특수모듈을 액세스하고자 할 때, 사용권한을 중재해주게 된다.
중계모듈(210)에서 씨피유 모듈(200)쪽으로 특수모듈 사용허가 신호가 출력되면 씨피유모듈이나 일반 특수모듈의 사용권을 위해서는 중계모듈(210)의 벡터 어드레스 영역(213)에 각 씨피유 모듈이 특수모듈 사용 요구신호(자기 아이디)를 써넣어야 하는데 이 영역은 아래에 지정한다.
*벡터 어드레스 영역
각 씨피유 모듈이 통신모듈이나 일반 특수모듈을 사용하기 위해서는 자기에게 할당되어진 벡터 어드레스 영역(213)에 아이디를 써넣는다.
그리고 자기 아이디가 인식되면 그때부터 통신모듈이나 일반 특수모듈을 액서스 할 수 있다.
예를 들어 설명하면 현재의 상태가 'p'이고, 씨피유2 모듈이 사용권을 얻기위해서는 벡터 (2)에 아이디를 써넣는다.
중계모듈(210)에서는 벡터 영역의 상태를 체크하여 입력을 '0010'으로 받아들인다.
이 입력과 현재상태 'p'를 비교하여 'f'경로를 따라 다음 상태 'o'를 생성하여 출력한다.
씨피유2 모듈은 특수모듈 사용허가 신호의 상태 'o'를 인식하고 통신모듈을 액세스 한다.
액세스가 끝나면 씨피유2 모듈은 자기 벡터 어드레스 영역에 '0x00'을 써넣어 액세스가 끝났음을 알린다.
이와 같이 본 발명은 여러 개의 씨피유 모듈을 피엘씨 시스템에 장착하고 피엘씨 처리 프로그램을 리소스별로 분산하여 수행시킴으로써 속도를 향상시킬 수 있는 효과가 있게 된다.

Claims (3)

  1. 하나의 유저 프로그램 블록을 여러 개의 프로그램 리소스 블록(230)으로 독립적으로 나누고, 서로 동일하게 구성된 각각의 씨피유 모듈(200)에 중계 모듈(210)을 통해 상기 프로그램 리소스 블록(230)이 전송되도록 하며 상기 중계 모듈(210)은 상기 씨피유 모듈(200)간의 정보 공유와 글로벌 버스(240)를 사용하기 위한 버스사용 허가신호를 만들어 내도록 구성하여 된 것을 특징으로 하는 피엘씨의 멀티 씨피유 모듈시스템.
  2. 제1항에 있어서, 중계 모듈(210)은 버스사용 요구신호를 인가받아 버스사용 허가신호를 생성하는 이전상태 체크부(211) 및 스테이트 머신(212)과, 특수모듈 사용요구 신호를 인가받아 특수모듈 사용허가 신호를 생성하는 벡터 어드레스 영역(213)과, 시스템 전체의 공통변수를 저장하는 공용 메모리(214)로 구성하여 된 것을 특징으로 하는 피엘씨 모듈 시스템.
  3. 제1항에 있어서, 씨피유 모듈(200)은 시스템의 상태와 운용을 담당하는 프로세서(201)와, 유저 프로그램(204)을 수행하는 로직 연산 프로세서(203)와, 시스템을 제어하는 제어신호와 시스템의 상태를 체크하는 제어로직(205)으로 구성하여 된 것을 특징으로 하는 피엘씨의 멀티 씨피유 모듈 시스템.
KR1019960031879A 1996-07-31 1996-07-31 피엘씨의 멀티 씨피유 모듈 시스템 KR100218383B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960031879A KR100218383B1 (ko) 1996-07-31 1996-07-31 피엘씨의 멀티 씨피유 모듈 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960031879A KR100218383B1 (ko) 1996-07-31 1996-07-31 피엘씨의 멀티 씨피유 모듈 시스템

Publications (1)

Publication Number Publication Date
KR100218383B1 true KR100218383B1 (ko) 1999-09-01

Family

ID=19468381

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960031879A KR100218383B1 (ko) 1996-07-31 1996-07-31 피엘씨의 멀티 씨피유 모듈 시스템

Country Status (1)

Country Link
KR (1) KR100218383B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240040549A (ko) 2022-09-21 2024-03-28 다임리서치 주식회사 노드 축소 기반 최적 경로 산출 방법, 장치 및 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240040549A (ko) 2022-09-21 2024-03-28 다임리서치 주식회사 노드 축소 기반 최적 경로 산출 방법, 장치 및 시스템

Similar Documents

Publication Publication Date Title
US4197580A (en) Data processing system including a cache memory
US4975838A (en) Duplex data processing system with programmable bus configuration
EP0330475B1 (en) Configuration control system
EP0166272B1 (en) Processor bus access
JP3961028B2 (ja) データフロープロセッサ(dfp)の自動的なダイナミックアンロード方法並びに2次元または3次元のプログラミング可能なセルストラクチャを有するモジュール(fpga,dpga等)
US4237534A (en) Bus arbiter
CN101925881B (zh) 多处理器系统以及多处理器系统的同步方法
US20100287318A1 (en) I/o and memory bus system for dfps and units with two- or multi-dimensional programmable cell architectures
KR102269504B1 (ko) 자동차용 제어 장치
US4691280A (en) High performance multi-processor system
CN100533417C (zh) 片上系统的数据传输方法及直接存储器访问控制器
US6473821B1 (en) Multiple processor interface, synchronization, and arbitration scheme using time multiplexed shared memory for real time systems
US7802038B2 (en) Communication steering for use in a multi-master shared resource system
US20030126404A1 (en) Data processing system, array-type processor, data processor, and information storage medium
KR100218383B1 (ko) 피엘씨의 멀티 씨피유 모듈 시스템
US7020730B2 (en) Method for operating a microprocessor configuration and microprocessor configuration
CN116700912A (zh) 一种访问逻辑ip的软硬件交互方法及装置
US6795911B1 (en) Computing device having instructions which access either a permanently fixed default memory bank or a memory bank specified by an immediately preceding bank selection instruction
EP0114839B1 (en) A high performance multi-processor system
JPS62157961A (ja) マルチプロセツサシステムの割込制御方法
JPS59229662A (ja) 共有メモリ制御回路
JP3602004B2 (ja) 装置内クロック非同期におけるシステム制御装置
KR0152225B1 (ko) 공유 메모리의 사용 권한 제어 장치
US5581793A (en) System for bypassing setup states in a bus operation
JPS593776B2 (ja) マルチマイクロプロセツサ・システムにおける交信方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120327

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20130222

Year of fee payment: 15