Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!uunet!dg!cheshirecat!lewine From: lewine@cheshirecat.webo.dg.com (Donald Lewine) Newsgroups: comp.sys.m88k Subject: Re: m88200 cache flushes on DG Aviion Keywords: m88200 Aviion Message-ID: <1199@dg.dg.com> Date: 7 Dec 90 14:19:53 GMT References: <2308@io.UUCP> Sender: root@dg.dg.com Reply-To: uunet!dg!lewine Organization: Data General Corporation Lines: 50 In article <2308@io.UUCP>, dbjag@io.UUCP (David Benjamin) writes: |> Does anyone know of a good method for forcing a memory cache flush on |> a Data General Aviion 300 series workstation. Specifically, I would like |> to request a specific line flush from the m88200 cache handling instructions. |> I'm not too keen on a full flush of both caches, as that would take too much |> time. |> |> The reason is kind of hairy, but if you must know, it involves self-modifying |> code which seems to fail on the Aviion when the caches get out of sync. |> There, glad you asked? |> |> This brings up another question. The code is apparently failing because |> the contents of the two caches different values for the same address. |> Why wasn't this state prevented by the "M-bus snooping" of the 88200's? |> Perhaps my understanding of their function is warped. |> |> Thanks in advance. |> |> -- |> - Dave Benjamin - |> - Interleaf - |> - ...!eddie.mit.EDU!ileaf!dbjag - The memctl() function is used to support self-modifying code, compile and go languages and the like. It lets you mark a region of memory as writable or executable. It may not be both executable and writable at the same time. See the DG/UX documentation or the 88open binary compatibility standard for details of memctl(). The 88200 (by default) does not do M-bus snooping for the instruction cache. It assumes that there will be no writes to the instruction stream and turning off snoop gives higher performance. The memctl() function may be used to override the default. Another solution is to chase the data out of the cache. You can make some memory references that will conflict with the instructions you want to flush and thus chase them out of the cache. NOTE: This is specific to the 88200. If Motorola were to make a larger cache chip, this code may stop working. -------------------------------------------------------------------- Donald A. Lewine (508) 870-9008 Voice Data General Corporation (508) 366-0750 FAX 4400 Computer Drive. MS D112A Westboro, MA 01580 U.S.A. uucp: uunet!dg!lewine Internet: lewine@cheshirecat.webo.dg.com