Number: 1464 Date: 19-Jun-84 14':34':48 Submitter: Sannella.PA Source: Jellinek.pa Subject: change the ALIGN argument for array allocation to allow more flexibility Assigned To: Masinter Attn: Status: Fixed In/By: Problem Type: Design - Impl Impact: Serious Difficulty: Moderate Frequency: Everytime Priority: Hopefully System: Language Support Subsystem: Storage Formats/Mgt Machine: Disk: Lisp Version: Source Files: Microcode Version: Memory Size: File Server: Server Software Version: Disposition: ' ["Masinter.pa" "26-Aug-84 15':32':43" Assigned% To': Attn': Status':(Open->Fixed) Impact':(Fatal->Serious) Difficulty':(Hard->Moderate) Description':] Description: ' [release message': no content. This was for fixing bugs in floppy, DLion disk, and floating point]' [part of this request, namely, to fix the ALIGN arg to ARRAY to really mean alignment, is Fixed. The ALIGN argument (only useful for machine dependent device drivers) is now interpreted as a number that the block should be on a cell-multiple of (I think, see \ADDITIONALALIGNMENT on LLARRAYELT for more details.)]' ' ' Date': 18 Jun 84 16':54 PDT' From': Jellinek.pa' Subject': Lisp': ARRAYP header should remember alignment' To': LispSupport.pa' cc': Jellinek.pa' ' Lisp System Date': 10-Jun-84 18':41':09' Machine': Dorado (Plaza)' Microcode version': 24,4' Memory size': 10000' Frequency': Always' Impact': Fatal' ' The header for arrayp''s should contain the array alignment (if one was explicitly given), and should deal with this info when the array is written to/read from a file.' ' Herb' ' -----' ' Date': 10 AUG 84 21':41 PDT' From': MASINTER.PA' Subject': AR#1758, array alignment' To': purcell, vanmelle, kaplan, jonl, jellinek' cc': lispsupport' ' What this looks like is a requirement to change the ALIGN argument for array allocation to allow more flexibility. Currently, the ALIGN arguement was intended only for placement of compiled code, i.e., number of initial words which needed to reside on the same page. ' ' I think the simplest thing to do is to augment \ALLOCBLOCK with another argument. The first arg is renamed INITONPAGE and the second argument (new) is the ''alignment'', i.e., the quanta that the allocation should be a multiple of. I think values of 2 (quad-word) 4 (8-word) and 128 (page) are the only ones ''supported'' or reasonable.' ' this removes the nonsense and confusion engendered by the current argument structure.' ' -----' ' Date': 13 Aug 84 13':32 PDT' From': JonL.pa' Subject': Re': AR#1758, array alignment' In-reply-to': MASINTER.PA''s message of 10 AUG 84 21':41 PDT' To': MASINTER.PA' cc': purcell.PA, vanmelle.PA, kaplan.PA, jonl.PA, jellinek.PA, lispsupport.PA' ' Who all now depends on actual alignment of arrayblocks, as opposed to not crossing page or segment boundaries?' ' -- JonL --' ' -----' ' Date': 13 Aug 84 16':27 PDT' From': Masinter.pa' Subject': Re': AR#1758, array alignment' In-reply-to': JonL.pa''s message of 13 Aug 84 13':32 PDT' To': JonL.pa' cc': MASINTER.PA, purcell.PA, vanmelle.PA, kaplan.PA, jellinek.PA, lispsupport.PA' ' Dolphin microcode requires fn headers be quadword aligned, I believe. Buffer pages used by various device drivers (floppy, disk) require page-aligned buffers, I believe. And the new floating point microcode for fft requires some pages to be 8-word aligned, for what reason I don''t know (reuse low order 3-bits of address?)' ' -----' ' Date': 13 Aug 84 17':08 PDT' From': Kaplan.pa' Subject': Re': AR#1758, array alignment' In-reply-to': Masinter.pa''s message of 13 Aug 84 16':27 PDT' To': Masinter.pa' cc': JonL.pa, purcell.PA, vanmelle.PA, kaplan.PA, jellinek.PA, lispsupport.PA' ' I have proposed that all arrays be quad-word aligned, as part of going to quad-word counts for the array block info. This kills 2 birds with one stone--the quad-word alignment requirement is always satisfied, and we allow array blocks to be twice as large, which means hash arrays can be twice as large.' ' The eight-word alignment has something to do with not crossing page boundaries when reading complex arrays, altho I don''t understand exactly what (and why 8 instead of 4; must be reading one complex ahead).' ' If quad-word were sufficient for all current applications except for page alignment which can be gotten from the the current align argument, things would run a bit better because we would eliminate one of the constraints that is causing us to reject arrays that are otherwise satisfactory.' ' --Ron' ' -----' ' Date': 13 Aug 84 17':19 PDT' From': Masinter.pa' Subject': Re': AR#1758, array alignment' In-reply-to': Kaplan.pa''s message of 13 Aug 84 17':08 PDT' To': Kaplan.pa' cc': Masinter.pa, JonL.pa, purcell.PA, vanmelle.PA, jellinek.PA, lispsupport.PA' ' the current allocator no longer rejects any arrays that are otherwise satisfactory..' ' Workaround: Test Case: Edit-By: Masinter.pa Edit-Date: 26-Aug-84 15':32':46