s26ks hyperflash: why write buffer program has more efficiency than word program

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
yodo_4825591
Level 3
Level 3
10 replies posted 10 sign-ins 5 replies posted

 

For s26ks hyperflash,  word program only run below 50MHz,  write buffer program can run in higher frequency. I have some question about that:

 

1. In burst word program( write multiple words in a single command),  data will be written into buffer or not?  In RTL simulation using s26ks flash model, I found data will be written into buffer first.

 

2.  Write buffer program  using "addr0->word->addr1->word->...."  sequence,  but word program using  "addr->word->word->word..." sequence,  which means even  write buffer program can run in higher frequency, it maybe transfer lower than word program. So why  use write buffer program?

 

3. Write buffer program has  less program time than word program or not?

 

4. How to understand the picture below? Is that mean  when writing single word using  word program, it  takes 270us typically?   when  writing  512 bytes using buffer program, it only takes  475us typically?

yodo_4825591_0-1628762267420.png

 

 

0 Likes
1 Solution
Apurva_S
Moderator
Moderator
Moderator
100 likes received 500 replies posted 250 solutions authored

Hi @yodo_4825591 

Please see the response to your questions below - 

  1. Data is stored to buffer during burst write operation, then once CS# is de-asserted, the data in buffer is programmed to Flash array.
  2. Because write buffer program sequence is compatible with parallel NOR Flash. HyperFlash uses parallel NOR Flash based command set. The burst word program is a superset of single word program in parallel NOR flash. The write buffer program is used for software (Flash memory driver) compatibility between HyperFlash and parallel NOR Flash.
  3. If you are programming the same number of words by write buffer program and burst word program, the program time is same.
  4. Yes, your understanding is correct. Programming full-512 byte at a time is most efficient. In other words, if you program only one word by write buffer program, it takes 270us in typical.

Regards.

View solution in original post

0 Likes
4 Replies
Apurva_S
Moderator
Moderator
Moderator
100 likes received 500 replies posted 250 solutions authored

Hi @yodo_4825591 

Please see the response to your questions below - 

  1. Data is stored to buffer during burst write operation, then once CS# is de-asserted, the data in buffer is programmed to Flash array.
  2. Because write buffer program sequence is compatible with parallel NOR Flash. HyperFlash uses parallel NOR Flash based command set. The burst word program is a superset of single word program in parallel NOR flash. The write buffer program is used for software (Flash memory driver) compatibility between HyperFlash and parallel NOR Flash.
  3. If you are programming the same number of words by write buffer program and burst word program, the program time is same.
  4. Yes, your understanding is correct. Programming full-512 byte at a time is most efficient. In other words, if you program only one word by write buffer program, it takes 270us in typical.

Regards.

0 Likes

Hi, 

 Thanks very much for your response, these information is very much for us.

Now, I have another question about < write buffer program> of s26ks hyperflash. I want to write  multiple word  using sequence like this "555->AA->2AA->55->SA->25->SA->WC->WBL->DATA->DATA->DATA", which use single  "WBL"  followed by  multiple words data. Maybe this is different with datasheet as picture below.

yodo_4825591_0-1628849135136.png

My experiment results are those: 

1) In RTL simulaton  using  s26ks hyperflash  Verilog model,  my write buffer program command( "555->AA->2AA->55->SA->25->SA->WC->WBL->DATA->DATA->DATA")  succeed.

2)When i run same code  in   real s26ks flash memory, it failed.

 

So, i want to ask if s26ks  can support  write buffer program like  "555->AA->2AA->55->SA->25->SA->WC->WBL->DATA->DATA->DATA" or not?

 

Thanks a lot.

 

 

0 Likes

Can your give me some advice for  write buffer program command  using sequece like "555->AA->2AA->55->SA->25->SA->WC->WBL->DATA->DATA->DATA"?

0 Likes
Apurva_S
Moderator
Moderator
Moderator
100 likes received 500 replies posted 250 solutions authored

Hi @yodo_4825591 

As described in the datasheet, it is not supported.

Regards.

0 Likes