Subversion Repositories HelenOS-doc

Rev

Rev 47 | Rev 62 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 47 Rev 54
Line 192... Line 192...
192
        left have more paging implementations, for example B-Tree page
192
        left have more paging implementations, for example B-Tree page
193
        tables.</para>
193
        tables.</para>
194
      </section>
194
      </section>
195
 
195
 
196
      <section id="tlb">
196
      <section id="tlb">
197
        <title>Translation Lookaside Buffer</title>
197
        <title>Translation Lookaside buffer</title>
198
 
198
 
199
        <para>- TLB cachuji informace ve strankovacich tabulkach; alternativne
199
        <para>Due to the extensive overhead during the page mapping lookup in
200
        se lze na strankovaci tabulky (ci ruzne hw rozsireni [e.g. VHPT, ppc32
-
 
201
        hw hash table]) divat jako na velke TLB</para>
-
 
202
 
-
 
203
        <para>- pri modifikaci mapovani nebo odstraneni mapovani ze
-
 
204
        strankovacich tabulek je potreba zajistit konsistenci TLB a techto
200
        the page tables, all architectures has fast assotiative cache memory
205
        tabulek; nutne delat na vsech CPU; na to mame zjednodusenou verzi TLB
-
 
206
        shootdown mechanismu; je to variace na algoritmus popsany zde: D.
201
        built-in CPU. This memory called TLB stores recently used page table
207
        Black et al., "Translation Lookaside Buffer Consistency: A Software
-
 
208
        Approach," Proc. Third Int'l Conf. Architectural Support for
-
 
209
        Programming Languages and Operating Systems, 1989, pp. 113-122.</para>
202
        entries.</para>
210
 
203
 
-
 
204
        <section id="tlb_shootdown">
-
 
205
          <title>TLB consistency. TLB shootdown algorithm.</title>
-
 
206
 
-
 
207
          <para>Operating system is responsible for keeping TLB consistent by
-
 
208
          invalidating the contents of TLB, whenever there is some change in
-
 
209
          page tables. Those changes may occur when page or group of pages
-
 
210
          were unmapped, mapping is changed or system switching active address
-
 
211
          space to schedule a new system task (which is a batch unmap of all
-
 
212
          address space mappings). Moreover, this invalidation operation must
-
 
213
          be done an all system CPUs because each CPU has its own independent
-
 
214
          TLB cache. Thus maintaining TLB consistency on SMP configuration as
-
 
215
          not as trivial task as it looks at the first glance. Naive solution
-
 
216
          would assume remote TLB invalidatation, which is not possible on the
-
 
217
          most of the architectures, because of the simple fact - flushing TLB
-
 
218
          is allowed only on the local CPU and there is no possibility to
-
 
219
          access other CPUs' TLB caches.</para>
-
 
220
 
211
        <para>- nutno poznamenat, ze existuji odlehcenejsi verze TLB shootdown
221
          <para>Technique of remote invalidation of TLB entries is called "TLB
-
 
222
          shootdown". HelenOS uses a variation of the algorithm described by
-
 
223
          D. Black et al., "Translation Lookaside Buffer Consistency: A
-
 
224
          Software Approach," Proc. Third Int'l Conf. Architectural Support
-
 
225
          for Programming Languages and Operating Systems, 1989, pp.
212
        algoritm</para>
226
          113-122.</para>
-
 
227
 
-
 
228
          <para>As the situation demands, you will want partitial invalidation
-
 
229
          of TLB caches. In case of simple memory mapping change it is
-
 
230
          necessary to invalidate only one or more adjacent pages. In case if
-
 
231
          the architecture is aware of ASIDs, during the address space
-
 
232
          switching, kernel invalidates only entries from this particular
-
 
233
          address space. Final option of the TLB invalidation is the complete
-
 
234
          TLB cache invalidation, which is the operation that flushes all
-
 
235
          entries in TLB.</para>
-
 
236
 
-
 
237
          <para>TLB shootdown is performed in two phases. First, the initiator
-
 
238
          process sends an IPI message indicating the TLB shootdown request to
-
 
239
          the rest of the CPUs. Then, it waits until all CPUs confirm TLB
-
 
240
          invalidating action execution.</para>
-
 
241
        </section>
213
      </section>
242
      </section>
214
    </section>
243
    </section>
215
 
244
 
216
    <section>
245
    <section>
217
      <title>---</title>
246
      <title>---</title>