application specific instruction-set processor for hard

40
Università degli Studi di Pavia Facoltà di Ingegneria Dipartimento di Elettronica A.A. 2008/09 Dottorato in Microelettronica VIII Ciclo Nuova Serie (XXII Ciclo) Application Specific Instruction-set Processor for Hard Disk Drive Servo operation: the Microprogrammed Servo Sequencer Dottorando: Paola BALDRIGHI Tutore: Prof. Carla VACCHI

Upload: others

Post on 07-Dec-2021

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Application Specific Instruction-set Processor for Hard

Università degli Studi di PaviaFacoltà di Ingegneria

Dipartimento di Elettronica

A.A. 2008/09Dottorato in Microelettronica

VIII Ciclo Nuova Serie (XXII Ciclo)

Application Specific Instruction-set Processor for Hard Disk Drive Servo operation:

the Microprogrammed Servo Sequencer

Dottorando: Paola BALDRIGHITutore: Prof. Carla VACCHI

Page 2: Application Specific Instruction-set Processor for Hard

Servo System� implementation of a part of the Servo System: the Regular

Servo Sequencer (RSS) control logic (Finite State Machine)

1

Page 3: Application Specific Instruction-set Processor for Hard

Servo sectors• Normal Servo for track seek

• Miniwedge Servo for track following

2

Page 4: Application Specific Instruction-set Processor for Hard

Servo System redesignAll microelectronics companies uses a FSM approach for Servo System implementation

Distinct market segments require different Servo data

3

State_0

State_1

State_2

State_3

State_4

State_5

State_6

State_0

State_1

State_2

State_4 State_3

Redesign of Regular Servo Sequencer

Servo 1 Servo 2

Page 5: Application Specific Instruction-set Processor for Hard

singleASIP with different behaviors, being described through custom firmwares. (Microprogrammed Servo Sequencer)

Reconfiguration vs Redesign

State of the art:

different Servo subsystem(Regular Servo Sequencer)

Sequencer)

4

Firmware+

Data

Redesign cost reduction

RSS MSS

area ☺☺☺☺ ����

power ☺☺☺☺ ����

design ���� ☺☺☺☺

Page 6: Application Specific Instruction-set Processor for Hard

CMOS integrated circuit non

recurrent cost$M)

5

Development Cost ($

Page 7: Application Specific Instruction-set Processor for Hard

Microprogrammed Servo Sequencer

• NO commercial μP (ex. ARM)

• singleASIP with customized ISA• different behaviors described through firmwares

• startup reconfiguration Finite State Machine

6

7

7

Elaborating core

PRBL embedded

counter

RRO2 embedded

counter

RRO1 embedded

counter

MINIWEDGE

embedded counter

generic

counter

CNT

in-out ports

pipelines

Assembler

firmware

Machine

codeReconfiguration FSM

Page 8: Application Specific Instruction-set Processor for Hard

� Microprogrammed Servo Sequencer characteristics:

� elaborating core

� reconfigurable I/O ports

� embedded counters

� Reconfiguration process

Microprogrammed Servo Sequencer

7

7

Elaborating core

PRBL embedded

counter

RRO2 embedded

counter

RRO1 embedded

counter

MINIWEDGE

embedded counter

generic

counter

CNT

in-out ports

pipelines

Assembler

firmware

Machine

codeReconfiguration FSM

7

� Reconfiguration process

Page 9: Application Specific Instruction-set Processor for Hard

PRBL embedded

MINIWEDGE

embedded counter

in out ports

pipelines

Elaborating core

7

7

Elaborating core

PRBL embedded

counter

RRO2 embedded

counter

RRO1 embedded

counter

generic

counter

CNT

in-out ports

Assembler

firmware

Machine

codeReconfiguration FSM

8

Page 10: Application Specific Instruction-set Processor for Hard

� MIPS processor� RISC

� Harvard approach

MIPS Elaborating core

9Sign

Extend

Mux

Mux

Mux

Mux

Address

Page 11: Application Specific Instruction-set Processor for Hard

• code is parametric

• only 2 pipelines

MSS Elaborating core

10

Page 12: Application Specific Instruction-set Processor for Hard

Instruction Unit

11

• code is parametric

Page 13: Application Specific Instruction-set Processor for Hard

Register Unit

11

• code is parametric

Page 14: Application Specific Instruction-set Processor for Hard

Register Memory addressing space

registers

• unique addressing space for internal registers and signals mapping data

0

12

in signals

in/out signals

2n-1unused

2n-1

Page 15: Application Specific Instruction-set Processor for Hard

Signal mappingcorrespondence between each signal and a firmware label:

• port address, 5 bit wide, and mask information, 7 bit wide

Sig_a = in_bSig_a =

in_b & in_c

13

MSS

in_b & in_c

MSS

Page 16: Application Specific Instruction-set Processor for Hard

Signal mapping example

MSS

45 100000 0101 0101

& = 0000 0000 0010

14

000001000001Port_1

mask

Page 17: Application Specific Instruction-set Processor for Hard

aluOp Type Operazion

R

00 00 AND *rd =*rs1&*rs2

00 01 OR *rd =*rs1 | *rs2

00 11 ADD

(signed)

if *rd =*rs1+*rs2 overflow =>

ovf = 2

01 11 CONCAT *rs1 & *rs2

11 10 COUNTER generic counter

01 00 SET *rd = segnale

Instruction set

4+2n bit instruction length

4 bit n bit n bit

01 00 SET *rd = segnale

11 11 NOT Not (rs1)

I

10 00 COMPI If *rs1 = const then ovf = 2

01 01 WAIT ctrl SG, HALT

11 00 COMPNI If *rs1 != const then ovf = 2

11 01 SLLR *rs1<<imm

00 10 STORE *rd = acc

10 01 SET_V *rd = const

J

10 10 JUMP branch unconditioned

10 11 NOP No op

01 10 JUMPCS branch conditioned

15

4 bit

4 bit

n bit n bit

2n bit

Page 18: Application Specific Instruction-set Processor for Hard

Customized instructions� WAIT

� ASIP idle until the signal sig1 assumes value value

� configuration for the activation of the Servo Gate control

16

� SLLR� SLL and SLR substituted with a single instructions

� Shifts right if the value is negative and left if the value is positive

Page 19: Application Specific Instruction-set Processor for Hard

Customized instructions� COUNTER

� COUNTER instruction manages the hardware programmable counter CNT

17

Page 20: Application Specific Instruction-set Processor for Hard

Customized instructions� JUMPCS

� branch realized with the sequence of 2 instructions: the first provides the overflow and the second is the JUMPCS

� prefetch technique to reduce execution time from 3 to 2 clock cycles:� branch destination instruction and the next instruction are read before

that the overflow information is ready

� when the overflow is ready the correct instruction is executed

18

Page 21: Application Specific Instruction-set Processor for Hard

Reconfiguration process

PRBL embedded

counter

MINIWEDGE

embedded counter

in-out ports

pipelines

19

7

7

Elaborating coreRRO2 embedded

counter

RRO1 embedded

counter

generic

counter

CNTAssembler

firmware

Machine

codeReconfiguration FSM

Page 22: Application Specific Instruction-set Processor for Hard

Reconfiguration FSM

20

Page 23: Application Specific Instruction-set Processor for Hard

IDLE

� Startup

21

Page 24: Application Specific Instruction-set Processor for Hard

Register Memory initialization� Registers values and signal mapping

information

21

Page 25: Application Specific Instruction-set Processor for Hard

Instruction Memory initialization� Firmware instruction

21

Page 26: Application Specific Instruction-set Processor for Hard

Execution (RN)� No initialization

� Firmware execution during Servo data reading

21

Page 27: Application Specific Instruction-set Processor for Hard

Firmware

Registers

Firmware

Signal mapping

#SPN_PGR_MIN 006…SEQR_SG port_1 1…SEQR_PGR_SRST port_out_2 32

22

instructions

SEQR_PGR_SRST port_out_2 32#IDLE

AND SPN_PGR_MIN t7 OR Acc SEQR_SGNOT SPN_PGR_MIN ADD Acc SEQR_SGCOMPI Acc 0JUMPCS IDLESRL SEQR_SG 9

…#

Page 28: Application Specific Instruction-set Processor for Hard

AssemblerC Programm

10163DB51…112

Assembler

Firmware Machine Code

#SPN_PGR_MIN 006…SEQR_SG port_1 1…SEQR_PGR_SRST port_out_2 32

317A19…201EF3285…

22

SEQR_PGR_SRST port_out_2 32#IDLE

AND SPN_PGR_MIN t7 OR Acc SEQR_SGNOT SPN_PGR_MIN ADD Acc SEQR_SGCOMPI Acc 0JUMPCS IDLESRL SEQR_SG 9

…#

Page 29: Application Specific Instruction-set Processor for Hard

#SPN_PGR_MIN 006…SEQR_SG port_1 1…SEQR_PGR_SRST port_out_2 32

10163DB51…112317A19

AssemblerMachine CodeFirmware

SEQR_PGR_SRST port_out_2 32#IDLE

AND SPN_PGR_MIN t7 OR Acc SEQR_SGNOT SPN_PGR_MIN ADD Acc SEQR_SGCOMPI Acc 0JUMPCS IDLESRL SEQR_SG 9

…#

317A19…201EF3285…

22

Page 30: Application Specific Instruction-set Processor for Hard

Functional verification

7

Elaborating core

PRBL embedded

counter

RRO2 embedded

counter

RRO1 embedded

MINIWEDGE

embedded counter

23

Functional VerificationFunctional VerificationFunctional VerificationFunctional Verification

7

7

RRO1 embedded

counter

generic

counter

CNT

Reconfiguration FSM

Page 31: Application Specific Instruction-set Processor for Hard

Why verification is so important?

39%38%

33%

39%

28%

42%

30%

35%

40%

45%

Respins due to functional bugs

24

17%

6%

20%

8%

28%

21%

6%

1% 1%2%

0%

5%

10%

15%

20%

25%

30%

1 2 3 4 5 6 >=7

De

sig

ns

Spins

2002

2004

2008

Page 32: Application Specific Instruction-set Processor for Hard

Assertion Based Verification� lines of code inserted in RTL source code

-- psl property P1 is never WRITE and READ;

-- psl assert P1;

display_state:process(i_RST_N,i_CLK)

Begin

If (WRITE = ‘1’) then

state_string_1<= data;Synthesis tool

Simulator

tool analysis

25

� Assertions describe low level and high level design functionality

� Advantages:� reusability characteristic

� design observability increasing

state_string_1<= data;

Elsif (READ =‘1’)then

Out <= state_string_1;

End if;

end process display_state;

Synthesis tool

analysis

Page 33: Application Specific Instruction-set Processor for Hard

Assertion behavior

-- psl property P1 is never WRITE and READ;

-- psl assert P1;

26

Page 34: Application Specific Instruction-set Processor for Hard

Assertion Based Verification

� Property Specification Language (PSL) - IEEE 1850

� complex MSS functionality verified with PSL assertion:

� JUMP, branch uncoditioned

� JUMPCS, branch conditioned

� NOP, no operation (idle condition)

� WAIT, idle condition till a signal value change

� Signal Mapping

27

Page 35: Application Specific Instruction-set Processor for Hard

JUMPCS verification

… …

28

21

22

23

24

36

37

Instr 21

JUMPCS 36

Instr 23

Instr 24

Instr 36

Instr 37

Page 36: Application Specific Instruction-set Processor for Hard

-- psl Property p_jumpcs is-- always {not(instr = NOP0);-- rose(instr(li-1 downto li-lc)="0110")} |=> -- {stable(instr); -- (overflow = “01”) or (overflow = “10”)};

-- psl Assert p_jumpcs;

-- psl Sequence s_jumpcs_no is -- {instr(li-1 downto li-lc)="0110"[*2]; overflow = “01”};

-- psl Property p_jumpcs_no is-- always s_jumpcs_no |-> -- (instr= data_out-- or (data_out = WAIT_126_0-- and instr = NOP_0)) -- and ((successivo(mem_addr, prev(mem_addr,1), nInstr)) -- or (((instr(li-1 downto li-lc) = "1010") -- and (mem_addr = instr(li-lc-4 downto li-lc-limm_j)))))

-- and instr_vs_pc = 4-- and successivo(prev(mem_addr,1), prev(mem_addr,3), nInstr)-- and ((addr_vs_pc = mem_addr+1) -- or (addr_vs_pc = mem_addr-- and instr(li-1 downto li-lc) = "1011" -- and not(instr(li-lc-4 downto li-lc-limm_j)=2)

29

-- and not(instr(li-lc-4 downto li-lc-limm_j)=2) -- and not (instr(li-lc-4 downto li-lc-limm_j)=1)));

6

7

8

9

29

Instr 6

JUMPCS 29

Instr 8

Instr 9

Instr29

Page 37: Application Specific Instruction-set Processor for Hard

Assertion Based Verification

� Different firmware used to point out functional bugs

STORE reg0, 1

COMPI reg0, 1

JUMPCS A

NOT reg1

A:

STORE reg0, 1

COMPI reg0, 1

JUMPCS B

NOT reg1

B:

STORE reg0, 1

COMPI reg0, 1

JUMPCS C

NOT reg1

C:

30

A:

NOP 1

AND reg0, reg1

B:

NOP 2

AND reg0, reg1

C:

NOP 1023

AND reg0, reg1

STORE reg0, 1

COMPI reg0, 0

JUMPCS C

NOP 1

D:

AND reg0, reg1

STORE reg0, 1

COMPI reg0, 0

JUMPCS C

NOP 2

E:

AND reg0, reg1

STORE reg0, 1

COMPI reg0, 0

JUMPCS C

NOP 1023

F:

AND Reg0, reg1

Page 38: Application Specific Instruction-set Processor for Hard

Servo Sequencer case study

� Servo Sequencer is a control logic of RWC servo subsystem:� Elaborating frequency: 300 MHz

� CMOS Technology 65 nm

� Industrial product

� Microprogrammed Servo Sequencer � Microprogrammed Servo Sequencer

31

4 bit

4 bit

4 bit

7 bit 7 bit

7 bit 7 bit

14 bit

•20 7 bit I/O ports

Page 39: Application Specific Instruction-set Processor for Hard

Synthesis results

Device Libraryclock [ns]

freq[MHz]

Area[μm2]

Power[mW]

Leakage[μW]

MSS (*) PVT (process SLOW, 1.1V, 125C)

LVT,HVT,SVT

3.33 300 36,7 x 103 3.24 1234

RSS 3.33 300 4.2 x 103 1.4 232

Global Cell

32

� CMOS Technology 65 nm

(*) Instruction Memory -> single port RAM in 1.1 V, 65 nm CMOS technology with standard voltage threshold

(*) Register Unit -> dual port RAM in 1.1 V, 65 nm CMOS technology with standard voltage threshold

Global Cell Area

Local Cell Area

Total [µm2]

%Combinational

[µm2]%

Non combinational [µm2]

%Black boxes [µm2] (*)

%

36770 100 9390 ~25 4326 ~12 23055 ~63

Page 40: Application Specific Instruction-set Processor for Hard

� Baldrighi, P.; Maggi, M. M.; Castellano, M.; Vacchi, C.; Crespi, D.; Bonifacino, P.; “Implementation of Microprogrammed Hard Disk Drive Servo Sequencer,” Proceedings of DSD 2008 (11th EUROMICRO CONFERENCE on DIGITAL SYSTEM DESIGN) – 3-5 September 2008

� Baldrighi, P.; Castellano, M.; Vacchi, C.; Canina, D.; Golzi, P.; Ferrante, G.; “Digital Nuclear Magnetic Resonance acquisition channel,” Proceedings of DSD 2008 (11th EUROMICRO CONFERENCE on DIGITAL SYSTEM DESIGN) – 3-5 September 2008

Publications

� Castellano, M.; Baldrighi, P.; Vacchi, C.; Natuzzi, M.; Furlan A.,; “Custom Formal Verification Technique For Partial Product Reduction Tree”, Proceedings of ICM 2008 (20th IEEE International Conference on Microelectronics) – 14-17 December 2008

� Castellano, M.; Baldrighi, P.; Vacchi, C.; “Pipelined Inner Product Function Generator”, Proceedings of ESSDERC-ESSCIRC 2008-poster Session – 15-19 September 2008

� Castellano, M.; Baldrighi, P.; Vacchi, C.; Natuzzi, M.; “Algorithm and Architecture for High Speed Merged Arithmetic FIR Filter Generation”, Proceedings of ISCCSP 2008 (3rd International Symposium on Communications, Control and Signal Processing) ;12-14 March2008;

� Baldrighi, P.; Vacchi, C.; Reconfigurable I/O ports Application Specific Processor: Servo Sequencer case study submitted to IEEE Magnetic Letters

33